⊗jqBsEM 30 of 113 menu

การทำงานกับเมธอด each ใน jQuery

เมื่อเรามีกลุ่มขององค์ประกอบที่ได้รับ มาโดยใช้ jQuery เราสามารถทำการเปลี่ยนแปลง พวกมันได้เฉพาะสำหรับทุกองค์ประกอบพร้อมกันเท่านั้น

ตัวอย่างเช่น ถ้าเราต้องการเปลี่ยนข้อความของ ย่อหน้าทั้งหมดที่พบ - เราจะไม่สามารถทำให้ ข้อความต่างกันได้

ในกรณีนี้เมธอดพิเศษ each จะช่วยเราได้ ซึ่งอนุญาตให้ใช้ ฟังก์ชันใด ๆ สำหรับองค์ประกอบทั้งหมดในชุดของ jQuery ในขณะที่ภายในฟังก์ชันนี้เราจะสามารถ แยกองค์ประกอบและทำต่างกัน กับแต่ละองค์ประกอบได้

โดยพื้นฐานแล้ว each เป็นลูป ด้วยความช่วยเหลือซึ่งสามารถวนซ้ำองค์ประกอบทั้งหมด ที่พบได้ ลิงก์ไปยังองค์ประกอบนั้นซึ่ง กำลังถูกวนซ้ำในขณะนี้จะอยู่ใน this

เราสามารถใช้ this นี้ ใน JavaScript ธรรมดาได้ ดังที่เราทำมาก่อนหน้านี้ ตัวอย่างเช่น อย่างนี้ - this.innerHTML - และแสดง เนื้อหาภายในขององค์ประกอบของเรา แต่ควรห่อ this ด้วยเครื่องหมายดอลลาร์ jQuery อย่างนี้ - $(this) - ในกรณีนี้เราจะสามารถใช้วิธีการ และเชนของ jQuery ทั้งหมดกับมันได้

มาดูโค้ด HTML ต่อไปนี้กัน:

<p class="www">text</p> <p class="www">text</p> <p class="www">text</p> <p>text</p>

ในตัวอย่างนี้เราควรได้รับองค์ประกอบทั้งหมด ที่มีคลาส www และแสดงบนหน้าจอ เนื้อหาของพวกมัน วิธีทำ: โดยใช้ $('.www') เราได้รับองค์ประกอบที่ต้องการ, จากนั้นโดยใช้ each(test) เราใช้ฟังก์ชัน test กับแต่ละองค์ประกอบ ที่ได้รับ มันจะถูกใช้กับย่อหน้าแรกก่อน, จากนั้นกับย่อหน้าที่สอง, ที่สาม และต่อไปเรื่อยๆ

ภายในฟังก์ชัน this จะชี้ไปที่ องค์ประกอบนั้นซึ่งฟังก์ชัน test กำลังถูกใช้ - ก่อนอื่นนี่จะเป็นองค์ประกอบแรก, จากนั้นอันที่สอง และอื่นๆ ด้วยความช่วยเหลือของ โครงสร้าง $(this) แทนที่จะเป็น this ธรรมดาจาก JavaScript เราจะได้องค์ประกอบ jQuery และใช้เมธอด html กับมัน ซึ่ง จะได้ข้อความขององค์ประกอบของเรา จากนั้น มันจะถูกแสดงบนหน้าจอ:

/* เราเขียนชื่อฟังก์ชัน test โดยไม่มีเครื่องหมายคำพูดและ (), เพราะเราต้องการโค้ดของมัน ไม่ใช่ผลลัพธ์: */ $('.www').each(test); function test() { alert($(this).html()); }

สำหรับการแก้ไขงานนี้สามารถใช้ฟังก์ชันที่ไม่ระบุชื่อได้ - นี่เป็นสิ่งที่ทำกันบ่อยที่สุด:

$('.www').each(function() { alert($(this).html()); });

เรายังสามารถส่ง callback function พร้อมพารามิเตอร์ให้กับเมธอด each ได้

มาในตัวอย่างถัดไปเพิ่มลำดับ ให้กับ li ทั้งหมดบนหน้าเว็บ ทีนี้ ในฟังก์ชันที่ไม่ระบุชื่อของเราเราจะส่งหมายเลข องค์ประกอบและตัวองค์ประกอบเอง:

$('li').each(function (index, elem) { $(elem).append(index); });

และตอนนี้ใช้ this แทน elem:

$('li').each(function (index) { $(this).append(index); });

เปลี่ยนเนื้อหาของ li ทั้งหมดเป็น หมายเลขลำดับของพวกมัน

ไทย
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣTürkmenTürkçeЎзбекOʻzbekTiếng Việt
เราใช้คุกกี้สำหรับการทำงานของเว็บไซต์ การวิเคราะห์ และการปรับเนื้อหาให้เหมาะสมส่วนบุคคล การประมวลผลข้อมูลเกิดขึ้นตาม นโยบายความเป็นส่วนตัว.
ยอมรับทั้งหมด ปรับแต่ง ปฏิเสธ