我想知道如何构建一个 CSS 选择器来匹配没有同时具有两个给定属性的元素。我试过了
tagName:not([attra][attrb])
因为我希望所有 :not
的 tagName
都具有 [attra]
和 [ attrb]
同时。
不幸的是,Firefox 和 Chrome(稳定版和 Canary)是这样说的
'tagName:not([attra][attrb])' is not a valid selector.
虽然tagName[attra][attrb]
,tagName:not([attra]):not([attrb])
都是有效的,但是自然不会返回什么我要。
最佳答案
使用多个选择器似乎可以解决问题。
演示: http://jsfiddle.net/4V3y5/
document.querySelectorAll("p:not([attra]),p:not([attrb])");
第一遍选择所有没有 attra
的 p
元素,这将排除具有两者的元素。
第二遍选择所有没有 attrb
的 p
元素,这同样排除了两者。
关于javascript - 如何否定 CSS 选择器中两个属性的结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547480/