Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.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 如何查找具有类的元素而不是具有此类的元素的子元素_Javascript_Jquery_Dom - Fatal编程技术网

Javascript 如何查找具有类的元素而不是具有此类的元素的子元素

Javascript 如何查找具有类的元素而不是具有此类的元素的子元素,javascript,jquery,dom,Javascript,Jquery,Dom,这听起来可能很棘手。您将更容易理解以下数据: <div> <h1> <div class='nested ok selected'></div> </h1> <div class='ok selected'> <div class='ko selected'></div> </div> <div class='ok

这听起来可能很棘手。您将更容易理解以下数据:

<div>
    <h1>
       <div class='nested ok selected'></div>
    </h1>
    <div class='ok selected'>
        <div class='ko selected'></div>
    </div>
    <div class='ok selected'></div>
</div>

我想选择所有
selected
类,而不是
selected
元素的子类,无论其深度如何。结果应与
ok
元素匹配。我之所以挣扎,主要是因为嵌套了
元素,否则它会非常简单

有线索吗

谢谢


编辑:我无法更改HTML和
ok
嵌套的
ko
选择器只是为了澄清我的问题。

一种方法是抓取所有选定元素,而不是过滤掉另一个选定元素下的元素

$('.selected').filter(function(){
   return $(this).parents('.selected').size() == 0
});

一种方法是抓取所有选定图元,然后过滤掉位于另一个选定图元下的图元

$('.selected').filter(function(){
   return $(this).parents('.selected').size() == 0
});

您可以这样做:

$(".selected:not(:parent(.selected))")

演示返回的元素数:

您可以这样做:

$(".selected:not(:parent(.selected))")
显示返回元素数的演示:


y不重写html以更好地满足您的需要IS
ko selected
it打字?y不重写html以更好地满足您的需要IS
ko selected
it打字?不知道:父选择器+1@Darhazer我最近才发现这件事。它真的很方便。我不知道:父选择器+1@Darhazer我最近才发现这件事。它真的很方便。