jQueryセレクターの複数のパラメーター?


112

私はjQueryUIボタンプラグインを見ていましたが、これに気づきました

$("button, input:submit, a", ".demo").button();

このようなものを見たことがない。これは1つのjQueryセレクターでの複数の選択のようなものですか?

回答:


172

2番目の引数(".demo"例では)はcontextです。基本的に、セレクターは、決定されたcontextの子孫のみに一致するように制限されています

$(expr, context)

findメソッドを使用するのと同じです:

$(context).find(expr)

jQuery関数のドキュメントをご覧ください。

セレクタコンテキスト

デフォルトでは、セレクターはドキュメントルートから始まるDOM内で検索を実行します。ただし、$()関数にオプションの2番目のパラメーターを使用することで、検索に代替コンテキストを指定できます。たとえば、コールバック関数内で要素の検索を行う場合、その検索を制限できます。

$('div.foo').click(function() {
  $('span', this).addClass('bar');
  // it will find span elements that are
  // descendants of the clicked element (this)
});

また"button, input:submit, a"、投稿するセレクタはMultiple Selectorと呼ばれ、カンマで区切るだけで、任意の数のセレクタを組み合わせて1つの結果にまとめることができます。


クールはそれを知らなかった。ページ全体を検索しないようにクラスセクターのように言うのを制限したいとき、私は$( '
#id

これは、ソースを見て考えていたものとは逆です。私は最初の引数がスーパークラスであり、その後にそれを絞り込むサブクラスが続くことを期待します。まぁ。
light24bulbs 2013年

3
コンテキストを定義すると、ブラウザの方が速くなりますか?
アンドレスSK
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.