javascript - Google Chrome 和 Internet Explorer 中的 getElementsByClassName 性能

标签 javascript

这段代码在Google Chrome中完美运行;但是,它在 Internet Explorer 中不起作用。

function HideMyClassItems()
{
    var classone= document.getElementsByClassName('classone');
    for(var i=0; i<classone.length; i++) { 
    classone[i].style.display='none';
    }
}

怎么了?!

最佳答案

IE8 及以下版本不支持 getElementsByClassName(),但您可以尝试三个选项。

1:您可以创建一个函数

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 classone = getElementsByClassName(document.body,'classone');  // no document

2:您可以使用 jQuery。

var classone = $('.classone');

3:您可以使用querySelectorAll()方法/函数。

var classone = querySelectorAll('.classone');

关于javascript - Google Chrome 和 Internet Explorer 中的 getElementsByClassName 性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19429456/

相关文章:

javascript - 使用 Javascript 检测临时 Internet 文件设置

javascript - 如果值为空,则突出显示表单选择元素

JavaScript : Chrome gives [object text] for [object HtmlDivElement]

javascript - 将 HTML 链接分配给树节点文本

javascript - 尝试发送通知的 Firebase 函数失败

javascript - 更新 PHP 变量

javascript - Bootstrap 4 导航栏第一个导航项未突出显示和 scrollspy 问题

javascript - Facebooksigned_request 数据和一些安全问题

javascript - 如何从特定的另一个对象创建对象

javascript - 使用 jQuery 删除 DOM 元素不起作用