如何得到一个类的所有元素,而不是另一个类的

How to get all element of a class but not of another class?

本文关键字:元素 另一个 何得 一个      更新时间:2023-09-26

在我的DOM中我有这些元素:

<div class="myclass yourclass"></div>
<div class="myclass"></div>
<div class="myclass"></div>
<div class="myclass yourclass"></div>
<div class="myclass"></div>
<div class="myclass yourclass"></div>

我需要得到我的类的所有div,但不是你的类(所以在上面的情况下,我需要得到3个元素)。我试过这个,但不工作:

document.querySelectorAll('.myclass:not([.yourclass])')

querySelectorAll中不需要[],语法无效。

你可以使用任何CSS选择器,因为它是在querySelectorAll。请参阅下面的演示。(使用CSS着色,见console javascript结果)

var myClassElements = document.querySelectorAll('.myclass:not(.yourclass)');
console.log(myClassElements);
div {
  color: red;
}
.myclass:not(.yourclass) {
  color: green;
}
<div class="myclass yourclass">a</div>
<div class="myclass">b</div>
<div class="myclass">c</div>
<div class="myclass yourclass">d</div>
<div class="myclass">e</div>
<div class="myclass yourclass">f</div>

:不()