我有一个页面,其中包含无序列表的链接。我正在尝试按链接文本的字母顺序对该列表进行排序。我的 JavaScript 可以在 Firefox 和 Chrome 中运行,但不能在 IE 中运行。 IE 会用 undefined 覆盖原来的链接文本。
我的脚本首先找到ul标签,然后通过TagName获取所有a链接,并将它们放入数组lis中。然后是这个循环,我将链接文本放入第二个数组 vals 中,以便我可以对它们进行排序。我认为这就是问题所在。
for(var i = 0, l = lis.length; i < l; i++)
block 引用>vals.push(lis[i].text);
据我所知,IE 认为 .text 不存在。我在另一篇文章中看到建议将其更改为 .text(),但这在任何浏览器中都不起作用。
如何让 IE 对我的链接进行排序?
最佳答案
.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 .
关于javascript - 在 IE 中,Javascript 数组项未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8088360/