jQuery技术

querySelector 和 querySelectorAll

字号+ 作者:H5之家 来源:H5之家 2017-03-29 18:00 我要评论( )

querySelector 和 querySelectorAll

 querySelector()方法返回文档中匹配指定CSS选择器的一个元素,是单个DOM元素,querySelectorAll()返回的是NodeList。其实有点类似getElementById()和getElementsByTagName()的区别。

这两个方法接受一个CSS选择字符串并返回一个匹配该选择的DOM结点列表。该选择方法在现在主流的浏览器(IE从8.0以后都支持)中都是支持的,并且会比使用其他DOM方法实现选择要快得多。

<div class="container">
<p>段落元素</p>
</div>

oContainer2=.log(oContainer);
.log(oContainer3);

console

我们一般用的多的是document.querySelectorAll(), 实际上,也支持dom.querySelectorAll() 例如:

1 document.querySelector('.container').querySelector('p'); //<p>段落元素</p>

在我们想获取元素的HTML结构不复杂的情况下,感觉和通过id以及TagName获取的方法区别不大是吧,但如果是稍微复杂点的情况,原始的方法将变得非常麻烦,这时候querySelector()和querySelectorAll()的优势就发挥出来了,比如接下来的例子:

<div class="container">
<p>111</p>
<p>222</p>
<p>333</p>
<p>444</p>
<p>555</p>
</div>

我们需要获取class="container"的div元素下的第一和最后一个p标签,在之前,在不借助第三方库的情况下,我们通常会用getElementsByTagName先获取所有的p标签,然后用下标来指向第一和最后一个p。现在,我们可以这样写:

.querySelector('.container').querySelector('p:last-child'); //<p>555</p>

还可以结合CSS3选择器实现更高级的功能:

.querySelector('.container').querySelectorAll('p:nth-of-type(odd)');

PS:感谢网友来到前端开发分享网学习~~ 欢迎大家扫二维码学习更多相关前端知识!!
转载请注明原文/译文出处、译文超链接和译者等信息,否则视为侵权,谢谢合作!

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
网友点评