【发布时间】:2013-01-30 20:18:27
【问题描述】:
我想选择一个带有两个 not 子句的特定节点,但到目前为止我没有成功。我需要做的是,选择一个元素,其 div 包含字符串 0008,但它不是 10008,而且它确实 not 包含标签“style”,所以理论上它应该像这样工作:
document.querySelectorAll(" div[id*='0008']:not([id='10008'][style])")
但是,您可能会怀疑,它不是那样工作的。
document.querySelectorAll(" div[id*='0008']:not([id='10008'])")
document.querySelectorAll(" div[id*='0008']:not([style])")
当然,它们都可以完美地单独工作。
【问题讨论】:
-
你试过
$(" div[id*='0008']:not([style]):not([id='10008'])") -
这是
querySelectorAll的预期行为。:not()中不允许使用复杂的选择器。 @adeneo 提出的解决方案应该可行。 -
如果你把它们结合起来,就是说 NOT 元素同时具有,但允许元素具有一个或另一个。
-
@KevinB:如果你把它们结合起来,它会抛出一个 DOM 异常。
-
这是一个 jQuery 问题吗?或
document.querySelectorAll()问题?每个选项都有不同的选项。
标签: javascript jquery css dom selector