Saya memiliki sebuah div dan memiliki beberapa elemen input di dalamnya ... Saya ingin mengulangi setiap elemen tersebut. Ide ide?
257
Gunakan children()
dan each()
, Anda dapat meneruskan pemilih secara opsionalchildren
$('#mydiv').children('input').each(function () {
alert(this.value); // "this" is the current element in the loop
});
Anda juga bisa menggunakan pemilih anak langsung:
$('#mydiv > input').each(function () { /* ... */ });
each()
. Periksa dokumen, ditautkan dalam jawaban di atas.Dimungkinkan juga untuk beralih melalui semua elemen dalam konteks tertentu, tidak peduli seberapa dalam mereka:
Parameter kedua $ ('# mydiv') yang dilewatkan ke pemilih 'input' jQuery adalah konteksnya. Dalam hal ini setiap klausa () akan beralih melalui semua elemen input dalam wadah #mydiv, bahkan jika mereka bukan anak-anak langsung dari #mydiv.
sumber
Jika Anda perlu mengulang elemen anak secara rekursif :
sumber
Ini dapat dilakukan dengan cara ini juga:
sumber
Ini berulang melalui semua anak-anak dan elemen mereka dengan nilai indeks dapat diakses secara terpisah menggunakan elemen dan indeks masing-masing.
sumber
children () adalah loop itu sendiri.
sumber
Saya tidak berpikir bahwa Anda perlu menggunakan
each()
, Anda dapat menggunakan standar untuk loopdengan cara ini Anda dapat memiliki standar untuk fitur loop seperti
break
dancontinue
berfungsi secara defaultjuga
debugging will be easier
sumber
$.each()
selalu lebih lambat daripada satufor
lingkaran, dan ini adalah satu-satunya jawaban yang menggunakannya. Kuncinya di sini adalah menggunakan.eq()
untuk mengakses elemen aktual dalamchildren
array dan bukan[]
notasi braket ( ).