3

私はこのHTMLを持っています:

<body>
    <div id="switcher" class="switcher">
        <h3>Style Switcher</h3>
        <button id="switcher-default">
                Default
        </button>
        <button id="switcher-narrow">
            Narrow Column
        </button>
        <button id="switcher-large">
            Large Print
        </button>
    </div>
    <p>asdfasdfasdfas dsadf</p>
    <p>asd'lfkasdf</p>

    <script src="jquery.js"></script>
    <script src="test.js"></script>
</body>

大活字をクリックしたときに、最初の要素div(スイッチャーと呼ばれる)を除くすべてのボディ要素にクラスを追加したいと思います。idbutton

私が試してみました

 $(document).ready(function(){
   $("#switcher-large").bind("click", function(){       
    $("body:not(:first-child)").addClass("large");      
    });
});

$(document).ready(function(){
   $("#switcher-large").bind("click", function(){       
    $("body:not(div)").addClass("large");       
    });
});

$(document).ready(function(){
       $("#switcher-large").bind("click", function(){       
        $("body").not("#switcher").addClass("large");       
        });
    });

しかし、どれも機能していないようです(クラスはすべての要素に適用されます)。

p要素のみを選択するような別の方法を見つけたくありません。使用したセレクターが機能しない理由を理解したいだけです...

4

2 に答える 2

4

自分自身を除外する必要がありdocument.bodyます。好き

$("body *").not("#switcher").addClass("large"); 

bodyこれにより、を除くのすべての子がクエリされます#switcher。多分もっと便利です:

$(document.body).contents().not('#switcher').addClass('large');
于 2012-07-25T09:55:31.990 に答える
1
$("body").children().not("#switcher").addClass("large");
于 2012-07-25T09:56:58.793 に答える