javascript - 在 IE 中,Javascript 数组项未定义

标签 javascript arrays internet-explorer sorting

我有一个页面,其中包含无序列表的链接。我正在尝试按链接文本的字母顺序对该列表进行排序。我的 JavaScript 可以在 Firefox 和 Chrome 中运行,但不能在 IE 中运行。 IE 会用 undefined 覆盖原来的链接文本。

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

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

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

据我所知,IE 认为 .text 不存在。我在另一篇文章中看到建议将其更改为 .text(),但这在任何浏览器中都不起作用。

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

Full text of script

最佳答案

.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/

相关文章:

internet-explorer - Visual Studio 2013 更新 1 启动 IE 时调试挂起

c# - 我如何为 shdocvw.dll 创建一个强命名的互操作 dll

javascript - 在 Bootstrap 下拉切换中触发 jQuery

javascript - 基于字符串 "direction"的数组中的上一个或下一个元素

javascript location.hash 在 IE 中刷新

Javascript 遍历稀疏数组

ruby-on-rails - 如何用不同的值替换数组中的给定值?

javascript - 我可以根据 $index 和 ng-repeat 对象的长度应用 css 类吗?

javascript - 如何在页面加载时使用 ajax 提交隐藏表单?

javascript - 当我的模式已经打开时阻止 "show"事件(脚本重新加载)