javascript中document对象疑惑

万无引力 WY 2017-08-10 10:14:52
<html>
<head>
<title>document对象</title>
<script type="text/javascript" language="javascript">
function test() {
// var length = document.forms.length;
var MyForm = document.forms;
//document.write(MyForm.length);
for (i = 0; i < MyForm.length; i++) {
alert(MyForm[i].name);
//document.write(MyForm[i].name);
}
}
</script>
</head>
<body>
<table>
<form name="Myform">
<input type="text" name="one">
</form>
<form name="Myform1">
<input type="text" name="two">
</form>
<form name="Myform2">
<input type="submit" name="one" onclick="test()">
</form>
</table>
</body>
</html>
这是我的代码。我有个疑问,就是我使用document.write(MyForm[i].name)时,页面只能输出一个也就是MyForm[0].name,并且浏览器编译提出警告(Form submission canceled because the form is not connected)。但是我使用alert时,每次确认都会输出一个值。我想知到,for循环下不应该一起输出来吗???希望大家给予帮助。谢谢啦。
...全文
379 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
万无引力 WY 2017-08-10
  • 打赏
  • 举报
回复


麻烦各位,在这张图中,第二次document.write(MyForm[2].name)时。它提示name没有定义,是因为以前的name被覆盖掉,导致他显示没有定义?????
文盲老顾 2017-08-10
  • 打赏
  • 举报
回复
在 window.onload 之前可以使用document.write,在之后再使用的话,页面内容会被重写
  • 打赏
  • 举报
回复
文档流关闭后不要document.write,会覆盖当前所有内容 javascript document.write问题
万无引力 WY 2017-08-10
  • 打赏
  • 举报
回复
好的,我懂了,谢谢各位了。
天际的海浪 2017-08-10
  • 打赏
  • 举报
回复
document.write()一般只在页面加载完成之前使用。 当页面加载完成之后,文档流会自动关闭,就不要用document.write()了 页面加载完成之后再使用document.write()就会重新创建一个新的页面。 这个新页面的源代码就是document.write()输出的字符串。 页面加载完成之后,要对页面内容改变和增加时应该用 innerHTML 和 appendChild()
文盲老顾 2017-08-10
  • 打赏
  • 举报
回复
在文档加载完成后,只要运行一次document.write,那么所有内容重写,包括变量,dom,js,样式等等所有你想的到的内容
  • 打赏
  • 举报
回复
引用 3 楼 qq_36251958 的回复:
麻烦各位,在这张图中,第二次document.write(MyForm[2].name)时。它提示name没有定义,是因为以前的name被覆盖掉,导致他显示没有定义?????
不是说了,覆盖去了,dom不存在了

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧