0

这里有我的 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();
4

1 回答 1

1

更新答案以匹配您的新问题代码:

$(".tabbed").find('.tabs:not(:first)').hide();

小提琴


上面的内容可能看起来不“正确”,因为人们会假设它:first只会返回 1 个元素,但它与这种更冗长且消耗 CPU 的形式具有相同的效果:

$(".tabbed").each(function() {
    $(this).find('.tabs:not(:first)').hide();
});

小提琴

我假设该.find()方法在为匹配元素集中的每个元素执行选择器之前在内部进行迭代,因此后面的代码片段是不必要的。但是,如果您以后在升级或降级 jQuery 时遇到问题,您可以使用更详细和防弹的形式。

于 2012-11-11T14:45:54.670 回答