この質問では、次のコードが使用されています-
var parent = $("#jcontent");
var button1 = $(".button1", parent) ;
button1
idの親内のクラスのボタンを選択しますjcontent
。
なぜこれが機能するのですか?jQueryオブジェクトをパラメーターとしてjQueryセレクターに渡すと、そのオブジェクト内で選択するようにどのように指示されますか?誰かがこの機能を説明するドキュメントにリンクできますか?
この質問では、次のコードが使用されています-
var parent = $("#jcontent");
var button1 = $(".button1", parent) ;
button1
idの親内のクラスのボタンを選択しますjcontent
。
なぜこれが機能するのですか?jQueryオブジェクトをパラメーターとしてjQueryセレクターに渡すと、そのオブジェクト内で選択するようにどのように指示されますか?誰かがこの機能を説明するドキュメントにリンクできますか?
これは、コアメソッド呼び出しcontext
のパラメーターです。
パラメータは次のように記述されます。
コンテキストとして使用するDOM要素、ドキュメント、またはjQuery
そして、「セレクターコンテキスト」というラベルの付いたセクションがあります。これは次で始まります。
デフォルトでは、セレクターはドキュメントルートから始まるDOM内で検索を実行します。ただし、$()関数のオプションの2番目のパラメーターを使用して、検索に代替コンテキストを指定できます。
2番目のパラメーターはセレクターコンテキストです。セレクターが一致するDOM要素、ドキュメント、またはjQueryオブジェクトです。このパラメータがない場合、ドキュメントルートが想定されます。
次のステートメント:
var button1 = $(".button1", parent); // parent = $("#jcontent")
**を書くのと同じです:
var button1 = parent.find(".button1"); // parent = $("#jcontent")
そして(この場合)これと同じ結果を生成します:
var button1 = $("#jcontent .button1");
**ここで述べたように:
内部的には、セレクターコンテキストは.find()メソッドで実装されるため、$('span'、this)は$(this).find('span')と同等です。