我有一个包含无序链接列表的页面。我试图通过链接文本按字母顺序对该列表进行排序。我的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对我的链接进行排序?
答案 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。