今天测试childNodes属性的时候,发现IE和FF结果不一样,IE下显示4个节点,而FF下显示9个节点,什么原因呢?原来空格或换行也算一个childNode,暴汗!!!
1
<
div
id
="div1"
onClick
="alert(count('div1'))"
>
2 < div > 111 </ div >
3 < div > 222 </ div >
4 < div > 333 </ div >
5 < span > 444 </ span >
6 </ div >
7 < script type ="text/javascript" >
8 function count(x){
9 var a = document.getElementById(x).childNodes,cs = [];
10 for ( var i = 0 ;i < a.length;i ++ )
11 {
12 if (a[i].nodeType == 1 && a[i].tagName){ // 过滤掉空节点
13 cs[cs.length] = a[i];
14
15 }
16
17 }
18 return cs.length
19 }
2 < div > 111 </ div >
3 < div > 222 </ div >
4 < div > 333 </ div >
5 < span > 444 </ span >
6 </ div >
7 < script type ="text/javascript" >
8 function count(x){
9 var a = document.getElementById(x).childNodes,cs = [];
10 for ( var i = 0 ;i < a.length;i ++ )
11 {
12 if (a[i].nodeType == 1 && a[i].tagName){ // 过滤掉空节点
13 cs[cs.length] = a[i];
14
15 }
16
17 }
18 return cs.length
19 }