我有这个HTML:
<div class="elem">
</div>
<div class="elem-1">
</div>
<div class="elem-2">
</div>
<!--Select the ones below-->
<div>
</div>
<p class="other-class">
</p>
我有这段代码:
var elems = document.querySelectorAll(".elem, .elem-1, .elem-2[,...]");
var otherElems = document.querySelectorAll(":not..."); //can I reuse elems here?
我可以使用elems
变量来选择除elems
中的所有元素以外的所有元素吗?
编辑:这看起来像代码重复:
var foos1 = document.querySelectorAll(".bars1, .bars2, .bars3, #bar1, #bar2[,...]");
var foos2 = document.querySelectorAll(".bars-1, .bars-2, .bars-3, #bar-1[,...]");
var foos3 = ...
.
.
.
var foosN
//list all former elements again
var noFoos = document.querySelectorAll(":not(.bars1, ..., .bars-3, #bar-1......)");
相反,我想重用已存储这些元素的变量。
类似的东西:
var noFoos = document.querySelectorAllBut(foos1, foos2, foos3,...);
答案 0 :(得分:2)
您可以将第一个选择器放在not
:
var elements = document.querySelectorAll(".elems, .elems-more, .elems-more-more[,...]");
var otherElements = querySelectorAll("div:not(.elems, .elems-more, .elems-more-more[,...])");
此外,您可以将选择器放在变量中以避免重复。但这可能不是最有效的解决方案。