私がこのようなマークアップを持っているとしましょう:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
#mooを選択します。
なぜ$('#foo').find('span')
機能するの$('span', $('#foo'));
ですか?
私がこのようなマークアップを持っているとしましょう:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
#mooを選択します。
なぜ$('#foo').find('span')
機能するの$('span', $('#foo'));
ですか?
var ele = $("div #foo")
どうでしょう。たとえば、ここから(配列参照を使用せずに)ここからmooを取得する方法から始めます
回答:
これらのどれでも使用できます[最速から開始]
$("#moo") > $("#foo #moo") > $("div#foo span#moo") > $("#foo span") > $("#foo > #moo")
実際、$( '#id'、this); 直接の子だけでなく、子孫レベルで#idを選択します。代わりにこれを試してください:
$(this).children('#id');
または
$("#foo > #moo")
または
$("#foo > span")
moo
。
.children()
と.find()
DOMサブツリーダウン元の旅唯一のレベルことを除いて類似しています。
find
オプションを使用して、別の要素を選択できます。たとえば、特定のdiv でID txtNameの要素を検索するには、次のように使用できます
var name = $('#div1').find('#txtName').val();
.... but $( 'span'、$( '#foo')); 動作しませんか?
このメソッドは、セレクターコンテキストを提供するものとして呼び出されます。
ここでは、jQueryセレクターに2番目の引数を指定します。直接選択またはjQuery要素に渡すのと同じように、任意のcssオブジェクト文字列にすることができます。
例えば。
$("span",".cont1").css("background", '#F00');
上記の行は、という名前のクラスを持つコンテナ内のすべてのスパンを選択しますcont1
。
どちらも動作しているようです。
フィドルを参照してください:http : //jsfiddle.net/maniator/PSxkS/
$('#moo')
?;)ところで。動作します:jsfiddle.net/fkling/k5X2r