IE和FF的whitespace处理是不一样的,IE会忽略dom中的whitespace,而ff不会,所以以下代码在IE和FF下执行效果是不一样的:
1
<div id="container">
2
<div id="main">
3
<div id="sub1">
4
hello sub 1.
5
</div>
6
<div id="sub2">
7
hello sub 2.
8
</div>
9
</div>
10
</div>
11
>
2
3
4
5
6
7
8
9
10
11
为了使两个浏览器运行效果一样,要把所有dom中的whitespace节点去掉,可以这样写:
1
}
然后,在dom trace之前调用一下,递归地把document下面所有whitespace去掉:
1
<div id="container">
2
<div id="main">
3
<div id="sub1">
4
hello sub 1.
5
</div>
6
<div id="sub2">
7
hello sub 2.
8
</div>
9
</div>
10
</div>
11
>
2
3
4
5
6
7
8
9
10
11
两个浏览器执行的效果就一样了。
更新:
此方法可能效率会低一点,因为要遍历所有dom节点。所以建议写类似几个方法:
1
}
使用方法:
1
alert( _rdc.next( _rdc.first( _rdc.first( $('container') ) ) ).id );