1

これら2つの特定のセレクターを組み合わせるのに問題がありますが、単純なセレクターでは同じ問題は発生しません。

これは私が通常使用するものです(.btnと.toggleを組み合わせて):

$(".btn, .toggle").removeClass("on");

これらは私が組み合わせることができない2つです(これと#toggle + id attrを組み合わせようとしています):

$(this).addClass("on");
$("#toggle" + $(this).attr("id")).addClass("on");

明確にするために、私は上記の2つのセレクターを組み合わせて、同じこと(クラスの追加)を行うようにしています。これが完全なコードです。

$(".btn").click(function() {
    $(".btn, .toggle").removeClass("on"); 
    $(this).addClass("on");
    $("#toggle" + $(this).attr("id")).addClass("on");
})

そして、私が試していることは、うまくいきません:

$(this, "#toggle" + $(this).attr("id")).addClass("on");

これを行うために必要な特別な方法はありますか?ありがとう。

4

2 に答える 2

4

.add()コレクションに要素を追加するために使用できます。

$(this).add($("#toggle" + $(this).attr("id"))).addClass("on");

または、より読みやすい方法で:

var toggleId = "#toggle" + $(this).attr("id");
var $toggleElem = $(toggleId);
$toggleElem.add(this).addClass('on');

$toggleElemこの例では、変数自体は変更されておらず、要素が1つだけ含まれていることに注意してください。

于 2012-08-16T01:08:57.227 に答える
2

私はあなたが必要だと思います, #

 $("#toggle, #" + $(this).attr("id")).addClass("on");
 //        ^ change here
于 2012-08-16T00:54:56.103 に答える