问答详情
源自:9-7 节点属性

遍历数组for(var i in node)和for(var i=0;i<node.length;i++)在这里的dom数组为什么不同?在其他一般数组结果是运行相同的

 //代码1
  var node=document.getElementsByTagName("li");
    for(var i in node){
      document.write("li["+(i+1)+"]:"+"<br/>"+"节点名:"+node[i].nodeName+"<br/>");
      document.write("节点值:"+node[i].nodeValue+"<br/>");
      document.write("节点类型:"+node[i].nodeType+"<br/><br/>");
        }
 //代码2
  var node=document.getElementsByTagName("li");
    for(var i=0;i<node.length;i++){
      document.write("li["+(i+1)+"]:"+"<br/>"+"节点名:"+node[i].nodeName+"<br/>");
      document.write("节点值:"+node[i].nodeValue+"<br/>");
      document.write("节点类型:"+node[i].nodeType+"<br/><br/>");
        }


提问者:qq_杀意隆_0 2017-06-01 20:44

个回答

  • 慕勒7123956
    2017-06-02 08:45:11
    已采纳

    因为 for in 里面的i是 字符串(因为for in 除了可以遍历数组之外,还可以遍历对象的属性,所以是字符类型的),你自己写的i是数字类型的,

    在第一个循环里面第一句上写i=parseInt(i);这样就可以正常显示啦