<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY>
<ul>
<li>111</li><li>222</li>
<li>333</li>
</ul>
<script>
var ul=document.getElementsByTagName("ul")[0];
var c = ul.childNodes;
var li = ul.getElementsByTagName("li");
for(var i=0;i<c.length;i++){
alert(c[i].nodeType);
}
alert(c.length+":"+li.length);
for(var i=0;i<li.length;i++){
alert(li[i].nodeType);
} </script>
</BODY>
</HTML>
上面的代码的结果是
IE:1、1、1、3:3、1、1、1 (1 element_node) FF:3、1、1、3、1、3、6:3、1、1、1 (3 text_node)
从上面的结果上来看,在FF中用childNodes来取子节点,它会将每个节点后的空白(\n)当成一个text_node(<ul>、第二个<li>后和第三个<li>后的回车都被当成了空白),而IE不会,所以为了做到兼容,在取子节点,尤其是子节点的TagName都相同的情况下,尽量使用getElementsByTagName比较好。