鉴于此 HTML 结构
<div class="item">
<div class="item">
select me
<div class="item">don't select me</div>
</div>
<span>
<div class="item">select me</div>
</span>
</div>
而这个jQuery:
var firstItem = $('.item:first');
var selector = firstItem.find('.item');
selector.css('color', 'red');
我正在寻找一种方法来仅标记 firstItem div 中未嵌套的 .item 元素。这里棘手的部分是 firstItem 本身已经(或可以)嵌套在 .item 类中。
我尝试了什么?
firstItem.find('.item').not('.item .item')
这不起作用,因为我们开始的第一级已经是一个 .item 类。这已经可以嵌套 x 次,所以它可以是 .item .item .item .item 或其他。并且起始元素没有 ID,所以我也不能在选择器中使用它。
我认为解决方案应该类似于反向的.closest(),它沿着 DOM 传播并且不搜索已找到项目的内容。
在这里准备了一个jsFiddle:http: //jsfiddle.net/LWmy3/2/