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

发布于 2021-02-02 17:26:57

如下代码:

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

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

对象不支持此方法

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

我宁愿不使用JQuery。

关注者
0
被浏览
120
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

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

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

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

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

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

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

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



推荐阅读
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看