不在querySelector中使用空格

时间:2017-01-15 20:38:25

标签: javascript dom css-selectors jquery-selectors

我想检索所有不属于其他元素的元素。 我试过这个代码示例(对我来说这似乎是一个非常有效的css3选择器):

document.querySelector("span:not(p span)")

它在chrome中不起作用,我该怎么办?

2 个答案:

答案 0 :(得分:1)

Support for the selector list argument of :not目前仅限于Safari和Mobile Safari。其他浏览器尚不支持它,而是将选择器视为无效。

基本:not()支持仅允许简单选择器,它们不支持后代组合器。

您可以采取的替代方法包括:

  • 所有 span设置规则,然后为p span元素编写不同的规则。
  • 以其他方式编写与元素匹配的选择器,例如body > span

细节取决于标记的确切性质。

答案 1 :(得分:1)

可以向所有p span添加一个类,然后将该类用作not过滤器

var pSpans = document.querySelector("p span");
for(var i=0; i<pSpans.length; i++){
  pSpans[i].classList.add('p-span');
}

var notPspans = document.querySelector("span:not(.p-span)")