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();

フィドル


上記は、1つ:firstの要素のみを返すと想定されるため、「正しく」見えない場合がありますが、このより冗長でCPUを消費する形式と同じ効果があります。

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

フィドル

.find()一致した要素のセット内の各要素のセレクターを実行する前に、メソッドが内部で反復を行うと想定しているため、後者のコードスニペットは不要です。ただし、将来jQueryをアップグレードまたはダウングレードするときに問題が発生した場合は、より詳細で防弾のフォームを使用できます。

于 2012-11-11T14:45:54.670 に答える