3

1つのdivを除く完全なdivコンテナを非表示にしたいのですが。

したがって、起動時にdiv id "box_5"を表示し、残りを非表示にします。ボタン1をクリックするとすべてが表示され、ボタン2をクリックするとすべてが再び非表示になります。

問題は、「ラッパー」divを非表示にすると、すべてを非表示にすることです。id=box_5。

問題はdivがラッパーdiv内にあることだと思いますが、回避策がわかりませんか?

<button id="button_1">show</botton>
<button id="button_2">hide</botton>

<div id="wrapper">
<div id="box_1"></div>
<div id="box_2"></div>
<div id="box_3"></div>
<div id="box_4"></div>
<div id="box_5">always show this</div>
<div id="box_6"></div>
<div id="box_7"></div>
<div id="box_8"></div>
<div id="box_9"></div>
<div id="box_10"></div>
</div>




$(document).ready(function() {
    $('#wrapper').not(":eq(#box_5)").hide();
    $('id="button_1"').click(function() {
        $('#wrapper').show();
        $('id="button_2"').click(function() {
            $('#wrapper').not(":eq(#box_5)").hide();
        });

    });
4

2 に答える 2

13

変化する

$('#wrapper').not(":eq(#box_5)").hide(); 

$('#wrapper').not("#box_5").hide();

注:eqセレクターを削除しました。eqセレクターはインデックスで機能します。あなたの場合eq、divのIDを知っているので、セレクターは必要ありません。

また、ハンドラー関数を次のように変更してください。

$('#button_1').click(function() {
    $('#wrapper').show();
});

$('#button_2').click(function() {
    $('#wrapper').not("#box_5").hide();
});
于 2012-11-05T19:54:10.397 に答える
2

非表示にする要素をセレクターに追加します。この場合は、「wrapper」要素内の「div」要素です。また、セレクターの他のフォーマットのいくつかを修正しました。

    $('#wrapper div').not("#box_5").hide();
    $("#button_1").click(function() {
        $('#wrapper div').show();
    });
    $("#button_2").click(function() {
        $('#wrapper div').not("#box_5").hide();
    });
于 2012-11-05T20:09:09.377 に答える