jQuery find()
วิธีอาจฟังดูคุ้นเคย แต่อย่าสับสนกับวิธี JavaScript find()!
พวกเขาทั้งคู่ "หา" สิ่งต่าง ๆ แต่สิ่งที่พวกเขากลับมานั้นแตกต่างกันมาก ใน JavaScript find()
เมธอดสามารถเรียกได้เฉพาะในอาร์เรย์เท่านั้น
ต้องใช้ฟังก์ชันเรียกกลับ ซึ่งเป็นฟังก์ชันที่ส่งผ่านไปยังเมธอดเป็นอาร์กิวเมนต์ เพื่อเรียกใช้ในภายหลัง ค้นหาและส่งคืนองค์ประกอบแรกที่ตรงตามข้อกำหนดที่ระบุไว้ในฟังก์ชันเรียกกลับ
jQuery find()
วิธีการค่อนข้างแตกต่างกัน เช่นเดียวกับเมธอด jQuery ทั้งหมด มันถูกเรียกบนตัวเลือก มันค้นหาภายในตัวเลือกนั้นและจัดการเฉพาะองค์ประกอบย่อยของตัวเลือกนั้น การจัดการระดับสูงนี้มีประโยชน์หากคุณต้องการเปลี่ยนองค์ประกอบบางอย่าง ไม่ใช่องค์ประกอบอื่นที่อยู่ในองค์ประกอบหลักเดียวกัน
การใช้ jQuery find()
ตอนนี้เรารู้ jQuery find()
. แล้ว ใช้เพื่อเลือกองค์ประกอบย่อยทั้งหมดของตัวเลือกที่กำหนด ดูตัวอย่างโค้ดเพื่อดูวิธีใช้ jQuery find()
.
มาเริ่มง่ายๆ และเพิ่มความซับซ้อนในหัวข้อต่อไป เราสามารถจัดการองค์ประกอบหลังจากโหลดหน้าเพื่อแสดงให้เห็นว่า find()
ทำงาน เราจะเปลี่ยนสีของคำบางคำในบริบทของย่อหน้าเมื่อหน้าโหลดขึ้นมาได้อย่างไร เราจะเริ่มต้นที่นี่:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <div id="main"> <h2> jQuery find() method example </h2> <p> This is an example paragraph. </p> <p>We are going to change the color <span>blue</span> to the color blue.</p> <div class="green">We are going to change the word <span>green</span> to the color green.</div> <p> Every other will word will stay the same. </p> </div>
ดูโค้ดนี้แล้วคุณจะสังเกตเห็นว่าภายในองค์ประกอบ
เป็นองค์ประกอบ บางส่วน องค์ประกอบ รายการหนึ่งเป็นลูกขององค์ประกอบ
อีกอันหนึ่งเป็นลูกของ
HTML ของเรากำลังแสดงผล ตอนนี้เราจะเปลี่ยนสีข้อความเพื่อแสดง
เป็นตัวเลือกของเราไปยัง
ในการใช้งานครั้งแรกของ
ทั้งหมด เราใช้
ในตัวอย่างนี้ เป็นเพียงคำว่าสีน้ำเงิน จากนั้นเราใช้
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ต่อการใช้งานครั้งที่สองของ
นี่เป็นเพียงคำว่าสีเขียวเท่านั้น เช่นเดียวกับบรรทัดแรก เรากำลังใช้
เรียกใช้และดูว่าเกิดอะไรขึ้น!
สังเกตว่าทั้งคำสีน้ำเงินและสีเขียวถูกห่อด้วยองค์ประกอบ span โดยไม่มีการกำหนดคลาสหรือ id เรายังสามารถแยกคำเหล่านั้นและเปลี่ยนสีได้ อย่างที่คุณอาจเดาได้ เป็นเพราะองค์ประกอบหลักของ ต่างกัน
คือพาเรนต์ของ ของคำว่า blue
สิ่งนี้เกิดขึ้นเพราะ
ในตัวอย่างนี้ เรามีรายการสิ่งที่ต้องทำ เรามีสิ่งที่ต้องทำในวันนี้ แต่เราต้องซื้อของที่ร้านเพื่อทำ เมื่อเราซื้อสินค้าเหล่านี้แล้ว เราก็สามารถทำเครื่องหมายออกจากรายการและเริ่มต้นวันของเราได้! นี่คือรายการของเรา:
ที่นี่เรามีรายการของเรา เรามีองค์ประกอบ
ตอนนี้เราสามารถทำเครื่องหมายรายการเหล่านี้ออกจากรายการหลังจากที่เราซื้อแล้ว:
เราสามารถขีดฆ่าเฉพาะรายการเหล่านั้นในรายการของเราโดยเลือก
jQuery
ความสามารถในการแยกความแตกต่างขององค์ประกอบย่อยที่จะเลือกทำให้เราเป็นแบบทั่วไปและเปลี่ยนทั้งส่วนของหน้า หรือเฉพาะและเปลี่ยนองค์ประกอบบางอย่างของหน้าเท่านั้น อยู่ในความยืดหยุ่นนี้ที่
ดูข้อมูลเพิ่มเติมเกี่ยวกับวิธีการเรียนรู้ jQuery ที่นี่find()
ในการดำเนินการ นี่เป็นขั้นตอนที่ดีสำหรับผู้เริ่มต้น เนื่องจากเราจำเป็นต้องเปลี่ยนแอตทริบิวต์ CSS เพียงรายการเดียวเพื่อให้บรรลุเป้าหมายนี้ ขณะส่งองค์ประกอบ find()
เราสามารถใช้ css()
. ของ jQuery วิธีการแสดงการเปลี่ยนสี:<script>
$(document).ready(() => {
$('p').find('span').css('color', 'blue');
$('div.green').find('span').css('color', 'green');
})
</script>
find()
เรากำลังเลือกองค์ประกอบ find()
เพื่อค้นหาองค์ประกอบ ที่เป็นลูกของ css()
วิธีการเปลี่ยนสีเป็นสีน้ำเงิน
find()
. คราวนี้เราจะเลือก find()
เกี่ยวกับมัน เมธอดกำลังค้นหาองค์ประกอบ อื่นที่เป็นลูกของ
css()
วิธีการเปลี่ยนสีเป็นสีเขียว
find()
ระบุตำแหน่งลูกขององค์ประกอบที่ใช้เป็นตัวเลือก มาเพิ่มความซับซ้อนและดูตัวอย่างรายการสิ่งที่ต้องทำjQuery find() ในรายการ
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div id="main">
<h2>
To Do list example
</h2>
<ul>
<li class="store">Go to the store
<ul>
<li>Trash bags</li>
<li>Dish Soap</li>
</ul>
</li>
<li>Take out the trash</li>
<Li>Wash the dishes</Li>
</ul>
</div>
ซึ่งเป็นลูกของ
<script>
$(document).ready(() => {
$('li.store').find('li').css('text-decoration', 'line-through')
})
</script>
find()
เพื่อค้นหาองค์ประกอบ css()
วิธีการใช้ค่า "line-through" กับแอตทริบิวต์ของ "text-decoration" การทำเช่นนั้นจะทำให้รายการที่เลือกมีเส้นผ่าน:
บทสรุป
find()
method ค้นหาองค์ประกอบย่อยทั้งหมดของตัวเลือกที่ส่งผ่าน find()
เมธอดจะจัดการองค์ประกอบย่อยเหล่านี้เท่านั้น ไม่ใช่ตัวพาเรนต์เอง
find()
ทำให้ตัวเองมีประโยชน์มากที่สุด