一尘不染

getElementsByClassName()在旧的Internet Explorer(如IE6,IE7,IE8)中不起作用

javascript

如下代码:

var borderTds = document.getElementsByClassName('leftborder');

在Internet Explorer 6、7和8中给我一条错误消息:

对象不支持此方法

如何在这些浏览器中按元素类别选择元素?

我宁愿不使用JQuery。


阅读 439

收藏
2020-04-25

共1个答案

一尘不染

此解决方案可能会有所帮助。这是使用getElementsByClassName纯javascript实现的自定义函数,可在IE中使用。

本质上,此脚本正在执行的工作是一个接一个地探测所有可能的选项,并选择可用的最佳选项。这些选项是:

  1. 本机document.getElementsByClassName功能。
  2. document.evaluate 函数,该函数允许评估XPath查询。
  3. 遍历DOM树。

当然,第一个是性能最佳的,但是后者应该随处可用,包括IE 6。

页面上也提供了用法示例,如下所示:

getElementsByClassName("col", "div", document.getElementById("container"));

因此该函数允许使用3个参数:类(必需),标签名称(可选,如果未指定,则搜索所有标签),根元素(可选,如果未指定,则为文档)。

2020-04-25