jQuery ทำงานต่อ - ฟังก์ชัน find()
ตัวอย่าง
ค้นหาหลักฐาน span ที่อยู่ในหลักฐาน p ทุกตัวและเปลี่ยนสีของมันเป็นแดง
$("p").find("span").css('color','red');
คำหมายและวิธีใช้
ฟังก์ชัน find() ของค่าองค์ประกอบปัจจุบันได้หลักฐานทุกองค์ประกอบ โดยใช้ตัวแสดง ตัวแปร jQuery หรือองค์ประกอบเพื่อกรอง
การใช้งาน
.find(selector)
ตัวแปร | คำอธิบาย |
---|---|
selector | ตัวเลขศัพท์ มีตัวแสดงที่ใช้เพื่อตรวจสอบว่าองค์ประกอบปัจจุบันตรงกับตัวแสดงนี้หรือไม่ |
รายละเอียด
ถ้ามีตัวแสดง jQuery ที่แสดงว่ามันเป็นชุดองค์ประกอบ DOM ฟังก์ชัน .find() อนุญาตให้เราค้นหาหลักฐานที่เป็นหลากหลายที่อยู่ในต้นไม้ DOM และสร้างตัวแสดง jQuery ใหม่ด้วยหลักฐานที่ตรงกับเงื่อนไข. .find() คล้ายกับ .children() มาก แต่ต่างกันที่ .children() ระบุเพียงหนึ่งระดับเดียวของต้นไม้ DOM
.find() มีลักษณะเห็นได้ชัดแรกคือ มันรับตัวแสดงเลือกเดียวกับประเภทของตัวแสดงที่เราส่งไปยังฟังก์ชัน $(). จะเซ็นทร์ทำการกรององค์ประกอบด้วยการตรวจสอบว่ามันตรงกับตัวแสดงนี้หรือไม่
โปรดคิดจัดสินด้วยความรู้สึกของคุณที่ด้านล่างนี้ ซึ่งเป็นรายการเลขาธิการที่แน่นน้อย
<ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul>
เราจะเริ่มจากลำดับ II แล้วหาองค์ประกอบในลำดับของมัน:
$('li.item-ii').find('li').css('background-color', 'red');
ผลลัพธ์ของการสำรวจครั้งนี้คือโครงการ A, B, 1, 2, 3 และ C ถูกตั้งค่าสีหลังแบบแดงเสมอ; แม้ว่าโครงการ II จะตรงกับตัวเลือก มันก็จะไม่ถูกเชื่อมโยงรวมอยู่ในผลลัพธ์; มีการตรวจสอบเฉพาะหลังผู้บุตรเท่านั้น
ต่างจากวิธีเลือกต้นไม้ที่อื่น ในวิธี .find() คำแสดงตัวเลือกคือต้องใช้ตัวเรียกค่า: หากพวกเราต้องการกลับค่าของทุกหลังผู้บุตร สามารถส่งมอบตัวเลือก wildcard '*' ได้
โครงการเลือก selector คือสิ่งที่ถูกปฏิบัติโดยวิธี .find(); ดังนั้น $('li.item-ii').find('li') เท่ากับ ('li', 'li.item-ii')
สำหรับ jQuery 1.6 นั้น พวกเรายังสามารถใช้ jQuery ชุดหรือองค์ประกอบที่ให้ไว้เพื่อการกรองได้: ยังคงเป็นลำดับรอยรับที่เดิมนี้ พวกเราเขียนดังนี้ก่อน:
var $allListElements = $('li');
หลังจากนั้น ส่งผล jQuery องค์ประกอบให้กับวิธี find():
$('li.item-ii').find( $allListElements );
รหัสด้านบนจะกลับค่า jQuery ชุดที่มีองค์ประกอบจากลำดับ II หลังผู้บุตร
ตามเดียวกัน ก็สามารถส่งมอบองค์ประกอบได้
var item1 = $('li.item-1')[0]; $('li.item-ii').find( item1 ).css('background-color', 'red');
ผลลัพธ์การเรียกใช้ครั้งนี้คือโครงการ 1 ถูกตั้งค่าสีหลังแบบแดง