CSS 选择器规范,便捷定位文档中指定元素。
querySelector 和 querySelectorAll 在规范中定义了如下接口:
其实就是任何 NodeList 、Element 的实例对象和 Document DocumentFragment 的实例对象都有这两个方法。如:
如何用 querySelectorAll 或 querySelector呢?来看个例子:
哈哈,是不是很好用啊。
这与使用 和querySelectorAll 结果一致。
JAVASCRIPT CODE:var foo= document.getElementById("foo");foo.querySelectorAll("div > p");// 返回 [<p>This is a sample warning</p>,<p >This is a sample error</p>]玩砸了……为什么两者返回结果不一致了呢?
等等,我们还是先看看规范定义怎么说: : when invoked, return a NodeList containing all of the matching Element nodes within the node’s subtrees, in document order. 还有一句
然后对比 <div id="foo"> 节点的子树中是否含有这些 p 元素。<div id="foo"> 节点的子树中仅含有[<p>This is a sample warning</p>, <p >This is a sample error</p>],那么就返回他们吧。这与之前问题例子返回结果一致。 这次的例子是在 <div id="foo"> 节点下寻找 html 标签中的body 标签中的 div 标签的直接子标签 P。
这与规范说明一致。
对于 Element 下的选择器范围,JQuery 认为是从当前元素开始查找,返回符合的结果集。而规范恰恰指出的是选择器只针对当前文档,选择出的结果集再与当前元素的子树比较。
零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。