Bagaimana cara menggunakan melanjutkan di jQuery setiap loop ()?

Jawaban:

364

Kita bisa mematahkan satu $(selector).each()loop dan satu $.each()loop pada iterasi tertentu dengan membuat fungsi callback kembali false. Pengembalian non-falsesama dengan pernyataan melanjutkan dalam satu forlingkaran; itu akan langsung melompat ke iterasi berikutnya.

return false; // this is equivalent of 'break' for jQuery loop

return;       // this is equivalent of 'continue' for jQuery loop

Perhatikan bahwa $(selector).each()dan $.each()ada berbagai fungsi.

Referensi:

Jayram
sumber
Meskipun benar, ini sepertinya tidak didokumentasikan. Apakah ini fitur 'tidak resmi'?
Michael Scheper
7
Hal ini didokumentasikan di sini api.jquery.com/jquery.each @MichaelScheper
Jayram
1
Itu tempat pertama yang saya lihat, tentu saja. Saya melihatnya sekarang; itu agak hilang di antara semua contoh.
Michael Scheper
29
$('.submit').filter(':checked').each(function() {
    //This is same as 'continue'
    if(something){
        return true;
    }
    //This is same as 'break'
    if(something){
        return false;
    }
});
Suresh Khandekar
sumber
3
Sementara kode ini dapat menjawab pertanyaan, memberikan konteks tambahan tentang mengapa dan / atau bagaimana kode ini menjawab pertanyaan meningkatkan nilai jangka panjangnya.
Ajean
7

Kita dapat memutus loop $ .each () pada iterasi tertentu dengan membuat fungsi callback kembali salah. Mengembalikan non-salah sama dengan pernyataan melanjutkan dalam for for; itu akan langsung melompat ke iterasi berikutnya. - jQuery.each () | Dokumentasi API jQuery

Nabil Kadimi
sumber
6

return atau return false tidak sama dengan melanjutkan. Jika loop berada di dalam fungsi, sisa fungsi tidak akan dieksekusi seperti yang Anda harapkan dengan "terus" yang sebenarnya.

Billy
sumber