Di bawah ini, bagaimana saya harus memilih elemen yang berisi kelas my_class
dalam elemen dengan id = "my_id"
?
Perhatikan bahwa elemen tersebut mungkin juga memiliki kelas lain, yang tidak saya pilih.
<div id = "my_id">
<span class = "my_class hidden">hi</span>
<span class = "my_class">hello</span>
</div>
sedang mencoba
$("#my_id [class*=my_class ]")
$("#my_id .my_class:first")
Cukup gunakan pemilih kelas biasa.
$('#my_id .my_class')
Tidak masalah jika elemen tersebut juga memiliki kelas lain. Itu memiliki kelas .my_class , dan berada di dalam #my_id , jadi itu akan cocok dengan selektor itu.
Mengenai kinerja
Menurut dokumentasi kinerja pemilih jQuery , lebih cepat menggunakan dua penyeleksi secara terpisah, seperti ini:
$('#my_id').find('.my_class')
Inilah bagian yang relevan dari dokumentasi:
Memilih berdasarkan ID atau kelas saja (antara lain) memanggil fungsi yang disediakan browser seperti
document.getElementById()
yang cukup cepat, sedangkan menggunakan pemilih turunan memanggil mesin Sizzle seperti yang disebutkan yang, meskipun cepat, lebih lambat dari alternatif yang disarankan.sumber
Selalu gunakan
//Super Fast $('#my_id').find('.my_class');
dari pada
// Fast: $('#my_id .my_class');
Lihat Aturan Kinerja JQuery .
Juga di Jquery Doc
sumber
Saya pikir permintaan Anda untuk memilih hanya
<span class = "my_class">hello</span>
elemen ini, Anda telah melakukan seperti ini, Jika saya memahami pertanyaan Anda dengan benar, inilah jawabannya,$("#my_id [class='my_class']").addClass('test');
DEMO
sumber
$("#my_id .my_class")
adalah padanan yang lebih pendek; Anda tidak mendapatkan apa pun dari menggunakan selektor atribut dalam kasus ini.Juga
$( "#container" ).find( "div.robotarm" );
sama dengan:
$( "div.robotarm", "#container" )
sumber