在我的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>
我需要得到myclass的所有div而不是你的类(所以在上面的情况下我需要获得3个元素)。 我试过这个但是不起作用:
document.querySelectorAll('.myclass:not([.yourclass])')
答案 0 :(得分:2)
[]
中不需要querySelectorAll
,语法无效。
您可以使用querySelectorAll
中的任何CSS选择器。请参阅下面的演示。(使用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>