首页 > web前端 > js教程 > 如何在 Internet Explorer 中使用'document.getElementsByClassName”?

如何在 Internet Explorer 中使用'document.getElementsByClassName”?

Barbara Streisand
发布: 2024-11-08 16:54:02
原创
901 人浏览过

How Can I Use `document.getElementsByClassName` in Internet Explorer?

JavaScript document.getElementsByClassName 与 IE 的兼容性

尝试使用 document.getElementsByClassName 获取具有特定类的元素数组时,IE 遇到兼容性问题。 IE 不直接支持此方法。

Jonathan Snook 的方法:

使用 Jonathan Snook 的 getElementsByClassName 函数(该函数基于正则表达式匹配来查找元素)可能会导致IE 中的错误。这是因为该函数未定义为文档的方法。

解决方案:

为了使该函数兼容 IE,应将其作为单独的函数调用不参考文档:

function getElementsByClassName(node, classname) {
    var a = [];
    var re = new RegExp('(^| )'+classname+'( |$)');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}

var tabs = getElementsByClassName(document.body,'tab');
登录后复制

IE8兼容性:

对于 IE8 及更高版本,可以使用替代方法:

if(!document.getElementsByClassName) {
    document.getElementsByClassName = function(className) {
        return this.querySelectorAll("." + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

var tabs = document.getElementsByClassName('tab');
登录后复制

此方法利用 IE8 中支持的 querySelectorAll 方法,该方法的操作与 getElementsByClassName 类似。

以上是如何在 Internet Explorer 中使用'document.getElementsByClassName”?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板