码农阿民 2010-11-10 15:50
浏览 306
已采纳

跨浏览器问题

我在IE 和FireFox 下测试以下javascript代码 :
[code="java"]
Tab = function(id)
{
var t= this;
t.tabs = {};
t.tabs = document.getElementById(id).childNodes;
for(i = 0 ; i<t.tabs.length;i++)
{
alert(t.tabs[i].id);
}

}
[/code]
出现以下问题:
ie 下 t.tabs[i].id 能够返回结果;
firefox下返回undefined;

请问这是什么原因?怎么解决?

  • 写回答

3条回答 默认 最新

  • iteye_9229 2010-11-11 09:18
    关注

    firefox会把把一个标签的结束符“>”到下一个标签的起始符“<”之间的内容(除注释外,包括任何的文字、空格、回车、制表符)也算是一个节点,而且nodeName="#text"。
    所以在循环时加上 if(t.tabs[i].nodeName=="#text") continue;就OK了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?