gpt4 book ai didi

javascript - 如何从元素中查询选择器子项(仅)?

转载 作者:搜寻专家 更新时间:2023-11-01 05:03:10 25 4
gpt4 key购买 nike

想象一下这样的结构:

<div id="boxes">
<div id="firstdiv">...</div>
<div class="important">...</div>
<div id="lastdiv">
<div id="subdiv">...</div>
<div class="important">...</div>
</div>
</div>

现在如果我写:

document.querySelectorAll('#boxes > div:not([class])')

我将得到 #firstdiv#lastdiv。太好了。

但是如果我想从 #boxes 元素做同样的事情呢?

const boxes = document.querySelector('#boxes')

// this is what I tried
boxes.querySelectorAll('> div:not([class])') // it doesn't work

// and if I type
boxes.querySelectorAll('div:not([class])')
// I get #firstdiv, #lastdiv BUT ALSO #subdiv which I don't want

我该怎么做?

最佳答案

您可以使用 :scope 来引用正在调用 querySelectorAll 的元素:

const collection = boxes.querySelectorAll(':scope > div:not([class])');
console.log(collection.length, collection[0], collection[1]);
<div id="boxes">
<div id="firstdiv">...</div>
<div class="important">...</div>
<div id="lastdiv">
<div id="subdiv">...</div>
<div class="important">...</div>
</div>
</div>

(不幸的是,它不支持 great 浏览器)

关于javascript - 如何从元素中查询选择器子项(仅)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57745294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com