阅读:5896回复:6
对firefox下javascript解析dom的疑惑
对于以下的一段代码:
<ul id="ulTest"> <li></li> <li></li> </ul> <script language="javascript"> alert(document.getElementById("ulTest").childNodes.length); </script> 在ie下显示为2,firefox下显示为5,显然ie下的结果应该是我们想要的,但不知道firefox下为何要这么解析呢。 经过反复测试,发现在firefox下,每两个结点之间都被认为有一个textNode类型的结点,这给编程带来了很大的问题,使得无法通过索引来一致性的访问子结点。 不知道大家是否遇到过这个问题,如何解决? |
|
1楼#
发布于:2005-10-21 20:46
这个在我以前的一篇帖子内有人提到:
将 IE 的 preserveWhiteSpace 设为 true |
|
|
2楼#
发布于:2005-10-21 20:46
这样写就一致了
<ul id="ulTest" ><li></li ><li></li ></ul> <script language="javascript"> alert(document.getElementById("ulTest").childNodes.length); </script><script> |
|
3楼#
发布于:2005-10-21 20:46
|
|
|
4楼#
发布于:2005-10-21 20:46
要不判断child的nodeName是不是li
|
|
5楼#
发布于:2005-10-21 20:46
写成一行,而且标签间没空格时就一致了:
<ul><li>AAA</li><li>BBB</li></ul> 写成这样,标签与标签之间至少有一个回车符。 <ul> <li>AAA</li> <li>BBB</li> <ul> |
|
6楼#
发布于:2005-10-21 20:46
难怪看一些帮助文档都是这样的。
><xx fdfds ><fdsfds 明白了。 |
|