querySelectorAll()和getElementsByClassName()

时间:2018-01-22 12:09:08

标签: javascript dom

显然这两个功能相似,性能更好?我应该使用哪一个?这两者之间的区别是什么?

document.querySelectorAll()



function funDOM() {
    var x = document.querySelectorAll(".example");
    var i;
    for (i = 0; i < x.length; i++) {
        x[i].style.backgroundColor = "red";
    }
}
&#13;
<html>
<body onload="funDOM()">
    <div>
        Doubts <span class="example">red</span>
    
    </div>
    <p class="example">red</p>
    
    
</body>
</html>
&#13;
&#13;
&#13;

document.getElementsByClassName()

&#13;
&#13;
function funDOM() {
    var x = document.getElementsByClassName("example");
    var i;
    for (i = 0; i < x.length; i++) {
        x[i].style.backgroundColor = "red";
    }
}
&#13;
<html>
<body onload="funDOM()">
    <div>
        Doubts <span class="example">red</span>
    
    </div>
    <p class="example">red</p>
    
    
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:2)

不同之处在于querySelectorAll允许您搜索的不仅仅是类。您可以使用任何CSS选择器进行搜索。

实际上,两者之间没有太大的性能差异,但如果您只想按类名搜索,则应使用getElementsByClassName