javascript - 如何否定 CSS 选择器中两个属性的结合

标签 javascript css css-selectors

我想知道如何构建一个 CSS 选择器来匹配没有同时具有两个给定属性的元素。我试过了

tagName:not([attra][attrb])

因为我希望所有 :nottagName 都具有 [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])");

第一遍选择所有没有 attrap 元素,这将排除具有两者的元素。

第二遍选择所有没有 attrbp 元素,这同样排除了两者。

关于javascript - 如何否定 CSS 选择器中两个属性的结合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22547480/

相关文章:

html - DIV定位和对齐问题

html - CSS垂直和水平居中对齐

html - 为什么 div#foo hr :first-child not work

javascript - AngularJS Karma 测试 - 测试时传递给 Controller ​​的解析对象未定义

javascript - 在 IE 10 中 javascript 数组不起作用

javascript - 未使用 jquery 提交表单

jquery - 如何在点击下拉菜单时制作 CSS 下拉菜单

css - 为什么 CSS :not pseudo-class doesn't work as expected?

javascript - 如何选择 href ="#xyz"的所有 a 标签

javascript - 为什么只有在集合不存在时 MongoDB 才插入记录的速度较慢?