博客列表 >jQuery中的querySelector和querySelectorAll区别

jQuery中的querySelector和querySelectorAll区别

咸鱼梦
咸鱼梦原创
2017年12月19日 17:25:103492浏览

两者的区别:

这里引用w3c的解释

    querySelector:  return the first matching Element node within the node’s subtrees. If there is no such node, the method must return null .(返回指定元素节点的子树中匹配选择器的集合中的第一个元素,如果没有匹配返回null);

    querySelectorAll: return a NodeList containing all of the matching Element nodes within the node’s subtrees, in document order. If there are no such nodes, the method must return an empty NodeList. (按文档顺序返回指定元素节点的子树中匹配选择器的元素集合,如果没有匹配返回空集合);

从定义可以看querySelector和querySelectorAll的参数是CSS选择器字符串。区别在于querySelector返回的是一个第一个匹配元素,querySelectorAll返回的一个所有匹配元素集合(NodeList)。

用法:

<div class="text">
    <p>第一段文本</p>
    <p>第二段文本</p>
    <p>第三段文本</p>
    <p>第四段文本</p>
    <p>第五段文本</p>
    <p>第六段文本</p>
</div>
$(function(){
    var p = document.querySelector('p');//获取文档中首个p元素
    p.style.background = 'red';
});

执行结果:

QQ截图20171219170907.png

同上:

$(function(){
    var p = document.querySelectorAll('p');//获取文档中所有p元素
    console.log(p.length); //控制台输出为6
    for (var i=0; i<p.length; i++) {
        p[i].style.background = 'lightgreen'  //添加背景色
    };
})

执行结果:

QQ截图20171219172359.png

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议