问答详情
源自:9-2 getElementsByName()方法

document.write的问题

function getnum(){

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

  document.write(mynode.length);

  alert(mynode.length);

}

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

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

提问者:榎目贵音 2016-03-31 17:12

个回答

  • 深山小童
    2016-04-03 22:41:20
    已采纳

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

  • weibo_
    2016-07-16 14:53:14

    代码的顺序是

    document.write(mynode.length);

    alert('mynode.length');

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

  • 我是烟火
    2016-05-20 23:33:11

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

  • 榎目贵音
    2016-03-31 18:28:33

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

  • 榎目贵音
    2016-03-31 18:01:34

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