Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择不具有父级的jQuery元素_Javascript_Jquery - Fatal编程技术网

Javascript 选择不具有父级的jQuery元素

Javascript 选择不具有父级的jQuery元素,javascript,jquery,Javascript,Jquery,对于此布局 <div class="foo"> <div class="baz"></div> </div> <div class="bar"> <div><div class="baz"></div></div> </div> <div class="baz"></div> 我希望它只选择没有.foo或.bar父项的.baz 它出了什么问题,

对于此布局

<div class="foo">
  <div class="baz"></div>
</div>
<div class="bar">
  <div><div class="baz"></div></div>
</div>
<div class="baz"></div>
我希望它只选择没有
.foo
.bar
父项的
.baz

它出了什么问题,如何修复


我认为选择器是无效的,但它的效率不是优先级。如何重写它以提高效率?

您的
:not
解决方案不起作用,因为它匹配所有
.baz
元素,因为
html
body
,可能还有其他
:不是(.foo,.bar)
,而是所有
.baz
元素的祖先

相反:

$(".baz").not(".bar .baz").not(".foo .baz")
例如:

console.log($(.baz”).not(.bar.baz”).not(.foo.baz”).length)


实现这一点的最简单方法是由这些元素的父元素进行选择,因为CSS无法进入DOM树。类似于
#container>.baz
@rorymcrossan的东西是肯定的。问题是第三个
baz
没有可以选择的特定父级。@estus他的意思是将这些div包含在一个带有id的父级容器中,并使用选择器
#container>.baz
选择带有baz类的子div
$(".baz").not(".bar .baz").not(".foo .baz")