document.write的问题

来源:9-2 getElementsByName()方法

榎目贵音

2016-03-31 17:12

function getnum(){

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

  document.write(mynode.length);

  alert(mynode.length);

}

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

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

写回答 关注

5回答

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

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

    榎目贵音

    非常感谢!

    2016-04-05 14:26:16

    共 1 条回复 >

  • 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,

    慕村1994...

    document.write()把之前的页面给覆盖了,write一次之后的新页面中mynode数组是空的;所以,下面的alert弹窗出来的是个空数组,就会显示数组长度为零

    2016-11-18 22:17:38

    共 1 条回复 >

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

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

    ray120...

    正解!

    2016-03-31 21:24:56

    共 1 条回复 >

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

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

    慕村1994...

    document.write()把之前的页面给覆盖了,write一次之后的新页面中mynode数组是空的;所以,第二次write的是个空数组,就会显示数组长度为零;第三次write同理

    2016-11-18 22:19:00

    共 1 条回复 >

JavaScript进阶篇

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

468061 学习 · 21891 问题

查看课程

相似问题