1

私は次のjQueryを持っています:

$(this).siblings().removeClass('active');
$(this).addClass('active');

これを1行にまとめることはできますか?あなたはこれを行うことはできません:

$(this).siblings().removeClass('active').addClass('active');

元の選択から転送 (sp?) したため、選択した DOM ノードが元のノードではなくすべての兄弟になったためです。

元の選択を再度選択して最初の行にチェーンできるセレクターがあるのではないかと思っています。

4

2 に答える 2

2

使用できますend

$(this).siblings().removeClass('active').end().addClass('active');
于 2013-09-08T23:27:59.437 に答える
2

あなたが探しているのは.end()関数だと思います。そのドキュメントから引用するには:

jQuery の DOM トラバーサル メソッドのほとんどは、jQuery オブジェクト インスタンスで動作し、DOM 要素の異なるセットに一致する新しいインスタンスを生成します。これが発生すると、あたかもオブジェクト内に保持されているスタックに要素の新しいセットがプッシュされたかのようになります。連続するフィルター処理方法ごとに、新しい要素セットがスタックにプッシュされます。古い要素セットが必要な場合は、 end() を使用してセットをスタックからポップバックできます。

于 2013-09-08T23:28:09.083 に答える