gpt4 book ai didi

javascript - 特定元素之后的 querySelector

转载 作者:行者123 更新时间:2023-11-28 08:41:32 27 4
gpt4 key购买 nike

有没有办法使用 CSS 选择器来选择出现在给定元素之后的元素。

假设我有一个像这样的 DOM

<body>
<span class="next">A next span</span>
<div>
<span class="next target">the target next span</span>
</div>
<div>
<span class="next">this is the one I want to select</span>
</div>
</body>

我想选择 next 类的 span,但只选择 span.next.target 之后出现的那些。棘手的是它们不需要是兄弟节点或位于同一父节点下,而是可以出现在 DOM 中的任何位置。

这是否可能,或者我注定要坚持使用 for 循环?

最佳答案

您可以使用纯 JavaScript 来实现此目的:

'use strict';

console.clear();
const spanNextNodes = document.querySelectorAll('div span.next');

let find = function*(nodes) {
let isNextTargetFound = false,
arrayOfNodes = Array.prototype.slice.call(nodes); // untill spread operator is supported [...nodes], we have to use slice method

for (let n of arrayOfNodes) {
if (isNextTargetFound) {
yield n;
} else if (n.classList.contains('target')) {
isNextTargetFound = true;
}
}
}

for (let item of find(spanNextNodes)) {
console.log(item);
}

Here is an example它基于使用函数生成器(yield)的 ES2015 标准,但如果您想使用 ES5,您可以将项目添加到数组并返回数组。

关于javascript - 特定元素之后的 querySelector,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20419082/

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