<div class="container" id = "0" >
<div class="x" id = "1">
<div id = "2">
<p id = "3">
<span id = "4" >text</span>
</p>
<div>
</div>
<div id="5">
<div id="6">
<p id="7">
<span class="x" id="8" >text</span>
<span id="9">text</span>
</p>
<div>
</div>
<div>
你能帮我选择所有的元素吗:
查看上面的超文本标记语言;它应该选择元素5、6、7和9
元素8具有类"X“
我有这个选择器,但它一直在选择类为"X“的元素的后代(深子元素)。
var elements = $('.container').find().parents(':not(.X)').andSelf().filter(':not(.X)');
发布于 2011-12-16 01:14:29
这应该可以做到:
$('.container').find(':not(.x):not(.x *)');
编辑:再次恢复到第一个版本。我认为它不是这样工作的,但是您的HTML中有一个错误,它使#1
成为所有元素的父元素,所以没有选择任何元素。
<div class="container" id = "0" >
<div class="x" id = "1">
<div id = "2">
<p id = "3">
<span id = "4" >text</span>
</p>
<div> <!-- <-- must be a closing div tag -->
</div>
<div id="5">
<div id="6">
<p id="7">
<span class="x" id="8" >text</span>
<span id="9">text</span>
</p>
<div> <!-- <-- must be a closing div tag -->
</div>
<div> <!-- <-- must be a closing div tag -->
发布于 2011-12-16 01:19:57
使用通配符
$(".container :not(* .x)")
或
$(":not(* .x)", ".container")
也许行得通。
https://stackoverflow.com/questions/8523954
复制相似问题