请看这里:
http://jsbin.com/igeqa为什么这个javascript在FF和IE中产生不同的输出?
这里,我只是使用
alert (tableObj.childNodes.length);
,在FF中输出是5
,而在IE中它是2
。请告诉我是什么原因导致这种行为?
请看这里:
http://jsbin.com/igeqa为什么这个javascript在FF和IE中产生不同的输出?
这里,我只是使用
alert (tableObj.childNodes.length);
,在FF中输出是5
,而在IE中它是2
。请告诉我是什么原因导致这种行为?
Firefox计算空白文本节点,而IE只计算元素。所以Firefox正在返回[#text,THEAD,#text,TBODY,#text],而IE只返回[THEAD,TBODY]。
IE和Moz以不同的方式计算HTML文档中的childNodes。 Moz将每个空白空间(可能的textNodes)计数为childNode,而IE只计算其中的一部分空间。这有几个解决方案。
'404 - File not found' – 2009-12-16 07:22:21
太棒了!公认。这是否意味着我们不应该在'childNodes'属性上回复 – 2009-12-16 07:16:47
依靠childNodes很好,只需在处理childNodes的代码中检查“node.nodeType == 1”(元素节点)以确保它们是元素if你不想获得文本节点,注释节点等。 – Annie 2009-12-16 07:25:50
谢谢,我将使用getElementsBytagName而不是childNodes – 2009-12-16 07:30:46