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

原文 标签 javascript css css-selectors

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

tagName:not([attra][attrb])


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




首次遍历选择所有不包含pattra元素,这将排除同时具有这两个元素的元素。

第二遍选择不带p的所有attrb元素,这又一次排除了同时具有两个元素的元素。

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

相关文章:

javascript - 如何根据条件在数组中添加对象元素

javascript - 使用Javascript将文件发送到OneDrive API

CSS3 从嵌套的 <ul> 中的顶级列表中获取最后一个 <li>

css - WebDriver-“:nth-​​of-type()”选择器是否适用于IE 9?

javascript - 单击时插入一个组件,单击该组件以外的组件时将其删除

html - 如何在表格单元格内创建全宽可滚动div?

jquery - 根据子元素的“值”属性编辑元素的样式

jquery - 如何将这些导航项居中?

html - CSS class 和 id 之间的处理速度差异

javascript - JavaScript中的严格模式适用于他们的框架吗?