这里有我的html和jQuery代码
<div class="tabbed">
<h2>Title</h2>
<div class="tabs"></div> <!-- want to show then hide rest -->
<h2>Title</h2>
<div class="tabs"></div>
<h2>Title</h2>
<div class="tabs"></div>
</div>
<div class="tabbed">
<h2>Title</h2>
<div class="tabs"></div> <!-- want to show then hide rest -->
<h2>Title</h2>
<div class="tabs"></div>
<h2>Title</h2>
<div class="tabs"></div>
<h2>Title</h2>
<div class="tabs"></div>
</div>
<div class="tabbed">
<h2>Title</h2>
<div class="tabs"></div> <!-- want to show then hide rest -->
<h2>Title</h2>
<div class="tabs"></div>
<h2>Title</h2>
<div class="tabs"></div>
<h2>Title</h2>
<div class="tabs"></div>
</div>
的jQuery
$(".tabbed > .tabs:not(:first)").hide();
答案 0 :(得分:1)
更新了与您的新问题代码匹配的答案:
$(".tabbed").find('.tabs:not(:first)').hide();
上面的内容可能看起来并不“正确”,因为人们会认为:first
只返回1个元素,但它具有与更冗长和耗费CPU的形式相同的效果:
$(".tabbed").each(function() {
$(this).find('.tabs:not(:first)').hide();
});
我假设.find()
方法在为匹配元素集中的每个元素执行选择器之前在内部进行迭代,因此后一个代码片段是不必要的。但是,如果您在将来升级或降级jQuery时遇到问题,则可以使用更详细和防弹的表单。