jQuery คือ ตอนที่ 1 : Selectors (ตัวเลือก) และ Traversal

  1. ทำความเข้าใจกับตัวเลือก (Selectors) jQuery
  2. ตัวเลือกลำดับชั้น (Hierarchical)และการรวมกัน (Combination)
  3. การกรองขั้นสูง (Advanced Filtering) ด้วยตัวเลือก jQuery
  4. การสำรวจ (Traversing) DOM ด้วย jQuery
  5. เหตุใดจึงมีความสำคัญในการทำเว็บและทำแอพ

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

1. ทำความเข้าใจกับตัวเลือก (Selectors) jQuery

ในการทำเว็บและทำแอพ ตัวเลือก jQuery ทำหน้าที่เป็นสะพานเชื่อมระหว่างองค์ประกอบ JavaScript และ HTML อนุญาตให้นักพัฒนา “เลือก” หรือค้นหาองค์ประกอบ DOM เพื่อให้สามารถจัดการหรือโต้ตอบได้

ตัวเลือกพื้นฐาน:

1. ตัวเลือกองค์ประกอบ (Element Selector):กำหนดเป้าหมายอินสแตนซ์ทั้งหมดขององค์ประกอบเฉพาะ HTML

$("p").hide(); // This will hide all paragraph elements on the page.

2. ตัวเลือกไอดี (ID Selector):เนื่องจากรหัสไม่ซ้ำกัน ตัวเลือกนี้จึงกำหนดเป้าหมายองค์ประกอบเฉพาะด้วยรหัสที่กำหนด

$("#myId").fadeIn(); // Targets the element with the ID "myId" and fades it in.

3. ตัวเลือกคลาส (Class Selector):กำหนดเป้าหมายองค์ประกอบทั้งหมดด้วยคลาสที่ระบุ

$(".myClass").toggle(); // Toggles the visibility of all elements with the class "myClass".

สำหรับนักพัฒนาเว็บและแอป การเรียนรู้ตัวเลือกเหล่านี้เป็นสิ่งสำคัญสำหรับการจัดการ DOM ที่มีประสิทธิภาพ พลังของไวยากรณ์ของ jQuery นั้นมีความคล้ายคลึงกับ CSS ทำให้ใช้งานง่ายขึ้นสำหรับผู้ที่คุ้นเคยกับภาษาสไตล์ชีต

2. ตัวเลือกลำดับชั้น (Hierarchical)และการรวมกัน (Combination)

บ่อยครั้งที่การทำเว็บและทำแอพต้องการความแม่นยำ นักพัฒนาอาจต้องกำหนดเป้าหมายองค์ประกอบตามความสัมพันธ์หรือแอตทริบิวต์รวมกัน

1. ตัวเลือกลูก (Child Selector):กำหนดเป้าหมายลูกโดยตรงขององค์ประกอบเฉพาะ

$("ul > li").addClass("highlight"); // Highlights direct list item children of an unordered list.

2. ตัวเลือกลูกหลาน (Descendant Selector):กำหนดเป้าหมายลูกหลานทั้งหมดขององค์ประกอบเฉพาะ ไม่ใช่แค่ลูกโดยตรง

$("#container div").fadeOut(); // Fades out all div elements inside the "container" ID.

3. Sibling Selector:กำหนดเป้าหมายพี่น้องขององค์ประกอบ

$("#item").next().css("color", "red"); // Changes the color of the element immediately after "item" to red.

4. ตัวเลือกการจัดกลุ่ม (Grouping Selector):กำหนดเป้าหมายองค์ประกอบที่แตกต่างกันหลายรายการ

$("h1, h2, .intro").slideUp(); // Targets h1, h2, and elements with the class "intro", then slides them up.

3. การกรองขั้นสูง (Advanced Filtering) ด้วยตัวเลือก jQuery

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

1. อันดับแรก สุดท้าย คู่ คี่ (First, Last, Even, Odd):กำหนดเป้าหมายองค์ประกอบตามตำแหน่ง

$("li:first").hide();  // Hides the first list item.
$("tr:even").addClass("even-row");  // Adds a class to even rows, useful for zebra-striping tables.

2. ตัวเลือกแอตทริบิวต์ (Attribute Selectors):กำหนดเป้าหมายองค์ประกอบตามคุณลักษณะและค่า

$("input[type='text']").val("Default Text"); // Sets a default text for all text input fields.

3. Pseudo-selectors:ใช้เงื่อนไขที่กำหนดเอง เช่น :visible, :hidden หรือ :animated เพื่อกำหนดเป้าหมายองค์ประกอบ

$("div:animated").stop(); // Stops all currently animating div elements.

4. การสำรวจ (Traversing) DOM ด้วย jQuery

หลังจากเลือกองค์ประกอบแล้ว วิธีการสำรวจจะช่วยให้นักพัฒนาสามารถนำทางไปรอบๆ แผนผัง DOM ซึ่งมีประโยชน์อย่างยิ่งในสถานการณ์การทำเว็บและทำแอพแบบไดนามิก

1. เด็ก (Children) และผู้ปกครอง (Parents):นำทางไปยังองค์ประกอบย่อยหรือผู้ปกครอง

$("#myDiv").children().css("border", "1px solid blue");  // Adds a border to all direct children of "myDiv".
$(".highlight").parent().addClass("highlight-parent");  // Highlights the parent of elements with the class "highlight".

2. พี่น้อง (Siblings):นำทางไปยังองค์ประกอบที่อยู่ติดกัน

$(".current").prev().addClass("before-current");  // Adds a class to the element immediately before the one with the class "current".
$(".current").nextAll().slideUp();  // Slides up all following siblings of the "current" class.

3. การกรองขณะเคลื่อนที่ (Filtering While Traversing):รวมการข้ามผ่านกับการกรองเพื่อการกำหนดเป้าหมายที่แม่นยำยิ่งขึ้น

$("#list").find("li").eq(2).fadeOut(); // Finds the third list item within "list" and fades it out.

5. เหตุใดจึงมีความสำคัญในการทำเว็บและทำแอพ

ในระบบนิเวศอันกว้างใหญ่ของการทำเว็บและทำแอพ ประสิทธิภาพและความแม่นยำเป็นสิ่งสำคัญ ความเร็วที่นักพัฒนาสามารถจัดการ DOM โดยเฉพาะในแอปพลิเคชันที่ซับซ้อน ส่งผลโดยตรงต่อประสิทธิภาพและประสบการณ์ผู้ใช้

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

ยิ่งไปกว่านั้น เนื่องจากการทำเว็บและทำแอพยังคงพัฒนาอย่างต่อเนื่องด้วยเทคโนโลยีเกิดใหม่ เช่น Progressive Web Apps (PWAs) และ Single Page Applications (SPA) ความสามารถในการนำทางและจัดการ DOM อย่างถูกต้องและรวดเร็วจึงมีความสำคัญมากยิ่งขึ้น


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


jQuery คืออะไร

jQuery คือ ตอนที่ 2 : การจัดการ (Manipulation) DOM