为了账号安全,请及时绑定邮箱和手机立即绑定

document.write的问题

function getnum(){

  var mynode=document.getElementsByName("myt");  

  document.write(mynode.length);

  alert(mynode.length);

}

为什么document.write输出出来是0呢?

如果把document.write和alert换一下顺序两个都是输出的6

正在回答

5 回答

对滴,文档加载完毕后使用document.write()会覆盖页面。

0 回复 有任何疑惑可以回复我~
#1

榎目贵音 提问者

非常感谢!
2016-04-05 回复 有任何疑惑可以回复我~

代码的顺序是

document.write(mynode.length);

alert('mynode.length');

也就是说在执行到document.write(mynode.length);这条代码时,显示屏的结果就已经是mynode.length的结果6了,而body标签里的input文本框就都被覆盖了,所以当代码执行到alert('mynode.length')时,显示屏上只有数字6,因此结果为0

2 回复 有任何疑惑可以回复我~

表示还是不懂为什么alert(mynode.length);输出来的是0,

0 回复 有任何疑惑可以回复我~
#1

慕村1994845

document.write()把之前的页面给覆盖了,write一次之后的新页面中mynode数组是空的;所以,下面的alert弹窗出来的是个空数组,就会显示数组长度为零
2016-11-18 回复 有任何疑惑可以回复我~

原来是输出document的时候覆盖了body里面的input这些元素了,怪不得输出出来是0

1 回复 有任何疑惑可以回复我~
#1

ray1208

正解!
2016-03-31 回复 有任何疑惑可以回复我~

如果删除alert(mynode.length);输出三次  document.write(mynode.length);的话,就会得到6 0 0的结果,为什么后面两次document是0呢?

0 回复 有任何疑惑可以回复我~
#1

慕村1994845

document.write()把之前的页面给覆盖了,write一次之后的新页面中mynode数组是空的;所以,第二次write的是个空数组,就会显示数组长度为零;第三次write同理
2016-11-18 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
JavaScript进阶篇
  • 参与学习       468190    人
  • 解答问题       21891    个

本课程从如何插入JS代码开始,带您进入网页动态交互世界

进入课程

document.write的问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信