Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

jQuery แต่ละ () ทำงานอย่างไร

jQuery each() เป็นวิธีที่กระชับในการวนซ้ำองค์ประกอบ DOM each() เมธอดได้รับการออกแบบให้เรียกใช้บนวัตถุ jQuery เป้าหมาย ออบเจ็กต์ jQuery เป็นอ็อบเจ็กต์ที่มีองค์ประกอบ DOM ตั้งแต่หนึ่งรายการขึ้นไป และมีสิทธิ์เข้าถึงเมธอด jQuery ไม่ใช่แค่ each() มีแนวโน้มที่จะเกิดข้อผิดพลาดน้อยลง ทำให้การจัดการองค์ประกอบ DOM หลายรายการง่ายขึ้น

jQuery each() ต้องใช้ฟังก์ชันเรียกกลับ ซึ่งเป็นฟังก์ชันที่ส่งผ่านไปยังฟังก์ชันอื่นที่จะดำเนินการในภายหลัง ภายในฟังก์ชันเรียกกลับคือการเข้าถึงหมายเลขดัชนีขององค์ประกอบและองค์ประกอบเอง สามารถดูการตรวจสอบฟังก์ชันการโทรกลับที่ครอบคลุมมากขึ้นได้ที่นี่

การประยุกต์ใช้ each() ตรงไปตรงมาเหมือนกับลูป JavaScript แต่มีบางจุดที่อาจเกิดความสับสนได้ เราจะเคลียร์ประเด็นเหล่านี้รวมถึงการดูไวยากรณ์ ที่ส่วนท้ายของคู่มือนี้จะมีตัวอย่างโค้ดทีละขั้นตอนเพื่อดูวิธีต่างๆ ในการใช้ jQuery each() .

jQuery each() คืออะไร

jQuery แต่ละวิธีเป็นวิธีการวนซ้ำสำหรับไลบรารี jQuery มันทำงานเหมือน JavaScript วนซ้ำโดยวนซ้ำองค์ประกอบ DOM jQuery each() ต้องมีฟังก์ชันเรียกกลับ และภายในฟังก์ชันเรียกกลับเป็นที่ที่องค์ประกอบ DOM สามารถจัดการได้

ในขณะที่อยู่ภายในเนื้อหาของฟังก์ชันเรียกกลับ คำสั่งเงื่อนไขสามารถใช้เพื่อเปลี่ยนองค์ประกอบที่เลือกบางส่วนได้ คำสั่งแบบมีเงื่อนไขคือ if...then คำสั่งใน JavaScript ซึ่งจะให้ระดับการควบคุมที่ลึกซึ้งยิ่งขึ้นว่าองค์ประกอบต่างๆ จะเปลี่ยนแปลงไปอย่างไร

jQuery แต่ละ () ไวยากรณ์

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

อาร์กิวเมนต์ค่าหมายถึงองค์ประกอบปัจจุบัน สิ่งสำคัญคือต้องสังเกตว่าการโยงเมธอดกับค่านั้นจำเป็นต้องมีการตัดค่าในตัวเลือก jQuery มาใส่ทั้งหมดนี้ลงในโค้ดนามธรรมเพื่อให้เราสามารถแยกย่อยไวยากรณ์ได้

$('div').each((index, value) => {
  console.log(`${index}: ${$(value).text()}`)
})

ที่นี่ เรากำลังเลือก

แต่ละรายการบนหน้าและวนซ้ำ ในการทำซ้ำแต่ละครั้ง เราสามารถเข้าถึงตำแหน่งดัชนีและค่าขององค์ประกอบปัจจุบันได้ ส่งกลับเพียง $(value) ทำให้เรากลัว [object Object] ค่า.

81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้

ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก

จำไว้ว่า [วัตถุวัตถุ] เป็นการแสดงสตริงของวัตถุ ซึ่งหมายความว่าเราต้องเรียกวิธีการเพื่อดึงค่าที่เราต้องการ ในกรณีข้างต้น เรากำลังใช้ text() วิธีการเปิดเผยแอตทริบิวต์ข้อความของวัตถุ อ่านเพิ่มเติมเกี่ยวกับ [วัตถุวัตถุ] เพื่อรับรู้ว่ากำลังส่งคืนอะไร

ตัวอย่างข้างต้นจะบันทึกหมายเลขดัชนีตามด้วยแอตทริบิวต์ข้อความสำหรับแต่ละ

หากเราไม่ต้องการเข้าถึงดัชนี เราสามารถจัดโครงสร้างโค้ดใหม่ได้ดังนี้:

$('div').each(function() {
  alert($(this).text())
})

การเขียนแบบนี้จะเป็นการบันทึกข้อความขององค์ประกอบ

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

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

คู่มือนี้ครอบคลุมฟังก์ชันลูกศรเข้าและออก

jQuery แต่ละ () ตัวอย่าง

มาขยายตัวอย่างไวยากรณ์ด้านบนและเพิ่มแอตทริบิวต์บางอย่าง เราเริ่มต้นด้วยการแสดง HTML พื้นฐานของรายการสีที่เป็นของคลาสต่างๆ

<div class="colorSelect">Red</div>
<div>Pink</div>
<div class="color">Orange</div>
<div class="colorSelect">Purple</div>
<div class="colorSelect">Blue</div>

สิ่งนี้แสดงองค์ประกอบข้อความแต่ละรายการใน DOM ขั้นแรก เริ่มต้นด้วยการบันทึกข้อความในคอนโซลโดยใช้ทั้งฟังก์ชันลูกศรและฟังก์ชันดั้งเดิม

$('.colorSelect').each((index, value) => {
  console.log($(value).text())
})

โดยการเลือกเฉพาะ

s ที่มีชื่อคลาสของ colorSelect เราจะบันทึกข้อความสีแดง สีม่วง และสีน้ำเงิน สังเกตว่าเรากำลังตัดค่าในอินสแตนซ์ jQuery ใหม่เพื่อเรียก jQuery text() กระบวนการ. การทำเช่นนี้จะคืนค่าเฉพาะข้อความขององค์ประกอบ
ที่เลือก

ให้ผลลัพธ์เหมือนเดิม แต่โดยใช้คำหลัก สิ่งนี้

$('.colorSelect').each(function() {
   console.log($(this).text())
})

เราสามารถใช้ฟังก์ชันที่ไม่ระบุชื่อ ซึ่งเป็นฟังก์ชันที่ไม่มีชื่อ เป็นฟังก์ชันเรียกกลับ อีกครั้ง จะส่งกลับข้อความสีแดง สีม่วง และสีน้ำเงิน เป็นมูลค่าการกล่าวขวัญว่าแม้ว่าฟังก์ชันลูกศรจะมีฟังก์ชันบางอย่างใน jQuery แต่แนวทางปฏิบัติที่ดีที่สุดคือการใช้รูปแบบการทำงานแบบเดิมสำหรับการเรียกกลับของ jQuery

ตอนนี้เรารู้วิธีทำซ้ำชุดขององค์ประกอบแล้ว ตอนนี้ มาสนุกและเปลี่ยนสีกันเถอะ!

<div class="colorSelect">Red</div>
<div>Pink</div>
<div class="color">Orange</div>
<div class="colorSelect">Purple</div>
<div class="colorSelect">Blue</div>

<div class='result'>

</div>

<style>
  .colorSelect {
    color: blue;
  }
  
  .green {
    color: green;
  }
</style>

เพื่อให้สอดคล้องกับหน้ารายการสี ตอนนี้เราได้เพิ่มบางคลาสให้กับองค์ประกอบ