katakanlah saya memiliki markup seperti ini:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
dan saya ingin memilih #moo.
mengapa $('#foo').find('span')
berhasil, tetapi $('span', $('#foo'));
tidak?
katakanlah saya memiliki markup seperti ini:
<div id="foo">
...
<span id="moo">
...
</span>
...
</div>
dan saya ingin memilih #moo.
mengapa $('#foo').find('span')
berhasil, tetapi $('span', $('#foo'));
tidak?
var ele = $("div #foo")
bagaimana Anda bisa moo dari sini (tanpa menggunakan referensi array)
Jawaban:
Sebenarnya, $ ('# id', this); akan memilih #id di tingkat keturunan mana pun, bukan hanya anak langsung. Coba ini sebagai gantinya:
$(this).children('#id');
atau
$("#foo > #moo")
atau
$("#foo > span")
moo
, bukan kelasnya.
.children()
dan .find()
serupa kecuali bahwa yang pertama berjalan hanya satu tingkat ke bawah sub-pohon DOM.
Anda dapat menggunakan find
opsi untuk memilih elemen di dalam yang lain. Misalnya, untuk menemukan elemen dengan id txtName di div tertentu, Anda dapat menggunakan like
var name = $('#div1').find('#txtName').val();
.... tapi $ ('span', $ ('# foo')); tidak bekerja?
Metode ini disebut menyediakan konteks pemilih .
Dalam hal ini, Anda memberikan argumen kedua ke pemilih jQuery . Ini bisa berupa string objek css seperti yang Anda berikan untuk pemilihan langsung atau elemen jQuery.
misalnya.
$("span",".cont1").css("background", '#F00');
Baris di atas akan memilih semua span dalam container yang memiliki kelas bernama cont1
.
keduanya tampaknya bekerja.
lihat biola: http://jsfiddle.net/maniator/PSxkS/
$('#moo')
? ;) Btw. itu berhasil: jsfiddle.net/fkling/k5X2r