querySelectorAll和.not()

时间:2018-09-15 20:14:30

标签: javascript css-selectors

<div class="alpha">
   <div class="beta">
      <label style="color:red; font-size: 12px;">Hello</label>
   </div>
</div>

我要排除(=不包括)以上label。 该包括它(已成功测试):

document.querySelectorAll(.alpha .beta label");

现在如何排除它?我想选择我所有的label class,但是我要排除的那个只有label style

2 个答案:

答案 0 :(得分:2)

您不能使用CSS选择器来匹配“ the one contained in label 以外的所有div.alpha div.beta s”。但是,您为预期结果提供了另一种定义:

  

我想选择我所有的<label class=…>,但是我要排除的那个只有<label style=…>

您可以使用attribute selector

document.querySelectorAll("label[class]:not([style])")

答案 1 :(得分:0)

尝试一下:

StackOverflowError

您不需要最后一个“标签”部分,因为标签不是div(并且您要选择div,对吗?),所以无论如何它都不会被选中