我可以做到这一点:
我可以做到这一点:
<div id="myDiv">
<div class="foo"></div>
</div>
myDiv = getElementById("myDiv");
myDiv.querySelectorAll("#myDiv > .foo");
也就是说,我可以成功检索 myDiv
具有类的元素 .foo
.
问题是,我必须 #myDiv
在选择器中包含它,因为我正在元素上运行查询 myDiv
(所以它显然是多余的),这让我很困扰。
我应该可以将其 #myDiv
关闭,但选择器不是合法语法,因为它以 >
.
有谁知道如何编写一个选择器,让它只获取选择器正在运行的元素的直接子元素?
有谁知道如何编写一个选择器,让它只获取选择器正在运行的元素的直接子元素?
编写以当前元素为根的选择器的正确方法是使用 :scope
.
var myDiv = getElementById("myDiv");
var fooEls = myDiv.querySelectorAll(":scope > .foo");
但是, 浏览器支持有限 ,如果要使用它,您需要一个垫片。我 scopedQuerySelectorShim scopedQuerySelectorShim