2

each()jQuery の機能に関する簡単な質問です。

を使用するときはeach()、通常、1 つだけを除いてすべての要素に影響を与えたいためです。例えば:

$("a.aboutMenu").each(function () {
    $(this).css("color","#FFF");
});

$(this).css("color","#111");

これをより良く書く簡単な方法はありますか?ifを関数に入れることができることはわかっていますが、何らかの形で「 except 」eachと書く必要がありますか?each$(this)

4

5 に答える 5

6

この状況では さえ必要ありませんが、一般的にはを使用してセレクターからeach除外でき、同じステップで CSS を適用できます。thisnot()

$("a.aboutMenu").not($(this).css('color', '#111')).each(function() {
    $(this).css("color", "#FFF");
});​

これcss()は、セッターとして使用すると元の jQuery オブジェクトが返されるため機能します。これは、パラメーターとしてnot()非常にうまく適合します。

于 2012-12-12T11:34:33.377 に答える
3

jQuery API で見た場合とまったく同じです。

あなたの例では、次のように言っています: a.aboutMenu ごとに css の色を白に変更します。

次のように書くこともできます。

$.each('a.aboutMenu', function() { $(this).css("color","#FFF");} });

コントロールが必要な場合はif、関数内に を追加するだけです。


編集:

要素だけを削除するには、次のthisように記述できます。

$('.aboutMenu').not(this).css('color', '#FFF');

またはそれ以上:

$('.aboutMenu').not(this).addClass('whiteColor');
于 2012-12-12T11:35:50.600 に答える
2

さて、あなたは次のことをすることができます:

$("a.aboutMenu").not( $(this) ).each(function () {
     $(this).css("color","#FFF");
});
$(this).css("color","#111");
于 2012-12-12T11:37:30.990 に答える
1

次の方法で実行できます。

$("a.aboutMenu").css("color","#FFF");
$(this).css("color","#111");
于 2012-12-12T11:34:33.780 に答える