在IE中Javascript数组项是未定义的

时间:2011-11-11 00:40:06

标签: javascript arrays internet-explorer sorting

我有一个包含无序链接列表的页面。我试图通过链接文本按字母顺序对该列表进行排序。我的javascript在Firefox和Chrome中运行,但在IE中却没有。 IE使用undefined覆盖原始链接文本。

我的脚本首先找到ul标记,然后通过TagName获取所有链接,并将它们放入数组lis中。然后是这个循环,我把链接文本放到第二个数组中,这样我就可以对它们进行排序。我认为这就是问题发生的地方。

  

for(var i = 0,l = lis.length; i< l; i ++)

     
    

vals.push(LIS [I]的.text);

  

据我所知,IE并不认为.text存在。我在另一篇文章中看到了一些建议将其更改为.text()的内容,但这在任何浏览器中都无效。

如何让IE对我的链接进行排序?

Full text of script

1 个答案:

答案 0 :(得分:2)

.text不是一个适用于所有地方的标准属性。您可以使用.innerHTML代替:

vals.push(lis[i].innerHTML);

或者,如果您只想要文字,可以使用:

vals.push(lis[i].textContent || lis[i].innerText);

有些浏览器支持innerText,有些支持textContent。这行代码可以得到任何未定义的代码。您可以在此处查看哪些浏览器支持:http://www.quirksmode.org/dom/w3c_html.html