首页 > web前端 > js教程 > 正文

如何在 Internet Explorer 中按类名检索元素?

Mary-Kate Olsen
发布: 2024-11-06 00:48:02
原创
890 人浏览过

How to Retrieve Elements by Class Name in Internet Explorer?

getElementsByClassName() 与 IE 的兼容性

问题:如何有效检索具有特定类的元素数组,考虑到 IE 兼容性限制?

答案:

Document.getElementsByClassName() 是 IE 不支持的现代方法。相反,请考虑以下方法:

自定义函数 (IE6):

定义自定义函数来模拟 getElementsByClassName()。这涉及到遍历 DOM 并根据提供的类名测试元素的类名:

<code class="js">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;
}

// Usage:
var tabs = getElementsByClassName(document.body, 'tab');</code>
登录后复制

querySelectorAll (IE8 ):

如果支持 IE8 或更高版本就足够了,扩展文档和 Element 对象以支持 querySelectorAll():

<code class="js">if (!document.getElementsByClassName) {
    document.getElementsByClassName = function (className) {
        return this.querySelectorAll('.' + className);
    };
    Element.prototype.getElementsByClassName = document.getElementsByClassName;
}

// Usage:
var tabs = document.getElementsByClassName('tab');</code>
登录后复制

确保使用所需节点作为第一个参数调用 getElementsByClassName(),因为它不是文档方法。通过实施这些解决方案之一,您可以按类名检索元素,确保与更广泛的浏览器(包括 IE)兼容。

以上是如何在 Internet Explorer 中按类名检索元素?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!