วิธีการใช้งานต่อใน jQuery แต่ละวง ()?


175

ในแอปพลิเคชันของฉันฉันใช้การโทร AJAX ฉันต้องการใช้breakและcontinueในลูป jQuery นี้

$('.submit').filter(':checked').each(function() {

});


คำตอบสามารถพบได้ที่นี่: stackoverflow.com/questions/481601/…
Buchannon

คำตอบ:


364

เราสามารถทำลายทั้ง$(selector).each()วงและวงที่ซ้ำโดยเฉพาะอย่างยิ่งการทำผลตอบแทนฟังก์ชันการเรียกกลับ$.each() falseการส่งคืนnon-falseจะเหมือนกับคำสั่ง Continue ในforลูป มันจะข้ามไปยังการทำซ้ำครั้งถัดไปทันที

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

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

ทราบว่า$(selector).each()และ$.each()มีฟังก์ชั่นที่แตกต่างกัน

อ้างอิง:


แม้ว่าจะเป็นความจริง แต่ดูเหมือนว่าจะไม่ได้รับการบันทึกไว้ นี่เป็นคุณสมบัติ 'ไม่เป็นทางการ' หรือไม่?
Michael Scheper

7
มันเป็นเอกสารที่นี่api.jquery.com/jquery.each @MichaelScheper
Jayram

1
นั่นเป็นที่แรกที่ฉันดู ฉันเห็นตอนนี้ มันหายไปท่ามกลางตัวอย่างทั้งหมด
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;
    }
});

3
ในขณะที่รหัสนี้อาจตอบคำถาม แต่มีบริบทเพิ่มเติมเกี่ยวกับสาเหตุและ / หรือวิธีการที่รหัสนี้ตอบคำถามช่วยปรับปรุงมูลค่าระยะยาว
Ajean

7

เราสามารถแบ่งลูป $ .each () ที่การวนซ้ำหนึ่ง ๆ โดยทำให้ฟังก์ชันการเรียกกลับคืนค่าเท็จ การส่งคืน non-false เหมือนกับคำสั่ง continue ใน a for loop; มันจะข้ามไปยังการทำซ้ำครั้งถัดไปทันที - jQuery.each () | เอกสาร jQuery API


6

return หรือ return false ไม่เหมือนกับที่ดำเนินการต่อ ถ้าลูปอยู่ในฟังก์ชันส่วนที่เหลือของฟังก์ชันจะไม่ทำงานตามที่คุณคาดหวังโดยใช้ "ดำเนินการต่อ" จริง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.