我有这个HTML:
<div id="container1">
<div id="container3">
<div class="item"></div>
<div class="item2"></div>
</div>
<div class="item"></div>
<div class="item2"></div>
<div id="container2">
<div class="item"></div>
<div class="item"></div>
<div class="item2"></div>
</div>
<div>
使用jQuery,是否有一种(简单)方法可以使用.item
搜索div,但屏蔽#container2
内的所有结果?
理想情况下,我喜欢$(#container1).mask('container2').find('.item')
之类的内容,即您可以在任何其他查询中使用的透明解决方案,而不知道您正在使用它。例如:
// where queryExcludingContainer2 could be `$(#container1).mask('container2')` if the `mask` function existed
queryExcludingContainer2.find('.item')
queryExcludingContainer2.find('.item2')
是否有这样的“屏蔽”功能?
答案 0 :(得分:2)
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以使用“:not”选择器 http://api.jquery.com/not-selector/
$('.item:not(#container2 *)')
答案 3 :(得分:0)
我想,您可以像这样使用space-bar
:
$('#container1 .item')
并且,如果.item
元素直接位于#container1
之下,您也可以使用它:
$('#container1 > .item')
答案 4 :(得分:0)
我认为你可以使用filter()
。