supNate
小狐狸
小狐狸
  • UID7615
  • 注册日期2005-07-27
  • 最后登录2005-11-05
  • 发帖数17
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:5523回复:6

对firefox下javascript解析dom的疑惑

楼主#
更多 发布于:2005-10-21 20:46
对于以下的一段代码:
<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类型的结点,这给编程带来了很大的问题,使得无法通过索引来一致性的访问子结点。
不知道大家是否遇到过这个问题,如何解决?
jhsea3do
小狐狸
小狐狸
  • UID5719
  • 注册日期2005-05-05
  • 最后登录2006-01-18
  • 发帖数45
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-10-21 20:46
这个在我以前的一篇帖子内有人提到:

将 IE 的 preserveWhiteSpace 设为 true
关注WebStandard,关心那些不使用IE的弱势群体!
chpn
小狐狸
小狐狸
  • UID10459
  • 注册日期2005-12-09
  • 最后登录2005-12-09
  • 发帖数6
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
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>
gzpbx
狐狸大王
狐狸大王
  • UID1527
  • 注册日期2004-12-29
  • 最后登录2009-06-30
  • 发帖数410
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2005-10-21 20:46
这玩笑开大了吧!~
chpn:这样写就一致了
<ul id="ulTest" 
><li></li 
><li></li
></ul> 

<script language="javascript"> 
alert(document.getElementById("ulTest").childNodes.length); 
</script><script>
回到原帖
如果你爱上了一朵生长在一颗星星上的花,那么夜间你看着天空就感到甜蜜愉快。所有的星星上都好象开着花。
sunwan
火狐狸
火狐狸
  • UID9953
  • 注册日期2005-11-20
  • 最后登录2009-07-27
  • 发帖数105
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2005-10-21 20:46
要不判断child的nodeName是不是li
ydgi
火狐狸
火狐狸
  • UID2074
  • 注册日期2005-01-12
  • 最后登录2007-04-03
  • 发帖数166
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
5楼#
发布于:2005-10-21 20:46
写成一行,而且标签间没空格时就一致了:
<ul><li>AAA</li><li>BBB</li></ul>


写成这样,标签与标签之间至少有一个回车符。
<ul>
<li>AAA</li>
<li>BBB</li>
<ul>
gudai
小狐狸
小狐狸
  • UID8435
  • 注册日期2005-09-06
  • 最后登录2006-01-26
  • 发帖数6
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
6楼#
发布于:2005-10-21 20:46
难怪看一些帮助文档都是这样的。
><xx
fdfds
><fdsfds
明白了。
游客

返回顶部