IE不会把空行当节点的. FF 会的.

解决方案 »

  1.   

    没问题啊,我用IE6,7都试了,alert(length)都是2
      

  2.   

    明明是4啊<div id="my"> 
    <a href="">aaa </a> 
    <a href="">bbb </a> 你把这三行的末尾空格去掉,(注意:是空格 不是换行)
      

  3.   

    <html> 
    <head> 
    </head> 
    <body> 
    <div id="my"> 
    <img src="" />  
    <img src="" /> 
    </div>
    <script> 
    var obj = document.getElementById('my'); 
    var length = obj.childNodes.length; 
    alert(length); 
    </script> 
    </body> 
    </html> 这个为什么显示4个节点呢??
      

  4.   

    你看看这个
    <html>
    <head>
    </head>
    <body>
    <div id="my"><img src="" /><img src="" /></div>
    <script>
    var obj = document.getElementById('my');
    var length = obj.childNodes.length;
    alert(length);
    for(var i=0;i<length;i++){
      document.writeln(obj.childNodes(i).id)
    }
    </script>
    </body>
    </html> 
      

  5.   

    那就是IE 和FF 一样,也会把空格当成文本节点了?  这和书上、资料上讲的完全不一样啊
      

  6.   


    不是空格,是换行。
    你把9F的代码中两个IMG回车换行,保存再试一下
      

  7.   

    <html>
    <head>
    </head>
    <body>
    <div id="my"> <img src="" /> <img src="" /> </div>
    <script>
    var obj = document.getElementById('my');
    var length = obj.childNodes.length;
    alert(length);</script>
    </body>
    </html> 仍然显示4
      

  8.   

    建议用开源的 JS LIB 来做浏览器兼容...ep:<html> 
    <head> 
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
    </head> 
    <body> 
    <div id="my"> <img src="" /> <img src="" /> </div> 
    <script> 
    var obj = document.getElementById('my'); 
    var length = obj.childNodes.length; 
    alert(length);
    for(var i=0;i <length;i++) 
    alert(obj.childNodes[i].nodeValue); alert($("div#my *").size());
    </script> 
    </body> 
    </html>