PlusMagi's Blog By Pitt Phunsanit Frontend,JavaScript,technology,Web การเลือก Element หลายตัวใน Pure JS: เปลี่ยนจาก $(‘.class’) สู่ document.querySelectorAll()

การเลือก Element หลายตัวใน Pure JS: เปลี่ยนจาก $(‘.class’) สู่ document.querySelectorAll()

ในโลกของการพัฒนาเว็บสมัยใหม่ การจัดการกับโครงสร้างของหน้าเว็บ หรือที่เรียกว่า Document Object Model (DOM) อย่างมีประสิทธิภาพถือเป็นหัวใจสำคัญของงานโค้ดดิ้งที่ดี นักพัฒนามักจะคุ้นเคยกับการใช้ไลบรารีภายนอกเพื่ออำนวยความสะดวกในการเลือกและจัดการ Element ต่างๆ แต่เมื่อเราก้าวเข้าสู่การเขียน JavaScript ที่บริสุทธิ์ (Pure JS) การทำความเข้าใจเครื่องมือพื้นฐานที่เบราว์เซอร์มีให้จึงเป็นสิ่งจำเป็นอย่างยิ่ง เพื่อให้โค้ดของเรามีความเร็วสูง ไม่ต้องพึ่งพา Dependency และทำงานได้อย่างเสถียรในทุกสภาพแวดล้อม


เจาะลึกรายละเอียดและประเด็นสำคัญ

เมื่อพูดถึงการเลือก Element หลายตัวใน JavaScript เรามักจะนึกถึงรูปแบบที่คล้ายกับ `$(‘.class’)` ซึ่งเป็นไวยากรณ์ของ jQuery แม้ว่ามันจะใช้งานง่าย แต่เบื้องหลังแล้วมันคือการเพิ่มชั้นความซับซ้อนและขนาดไฟล์ที่ไม่จำเป็นให้กับโปรเจกต์ของเรา ในทางกลับกัน การใช้เมธอด Native ของ JavaScript อย่าง document.querySelectorAll() นั้น เป็นวิธีการที่ถูกออกแบบมาเพื่อวัตถุประสงค์นี้โดยเฉพาะ มันทำงานได้รวดเร็ว มีประสิทธิภาพด้านหน่วยความจำ และเป็นไปตามมาตรฐาน W3C โดยตรง

สิ่งที่นักพัฒนาต้องทำความเข้าใจคือ document.querySelectorAll() จะคืนค่าเป็น NodeList ซึ่งเป็น Collection ของ Element ที่ถูกเลือกมาทั้งหมด การทำงานกับ NodeList นี้จึงแตกต่างจากการจัดการ Array ทั่วไปเล็กน้อย แต่ด้วยการใช้ Spread Operator (`…`) หรือการแปลงเป็น Array อย่างชัดเจน เราก็สามารถวนลูป (iterate) และจัดการกับ Element เหล่านั้นได้อย่างง่ายดาย ทำให้โค้ดของเราทั้งกระชับและมีประสิทธิภาพสูงสุด

const elements = document.querySelectorAll('.product-card');

// การวนลูปด้วย forEach (แนะนำสำหรับ NodeList)
elements.forEach(element => {
    element.style.opacity = '0.8';
});

/* หรือแปลงเป็น Array เพื่อใช้ for...of */
// [...elements].forEach(element => {
//     console.log(element);
// });


การนำไปประยุกต์ใช้ในชีวิตและการทำงานยุคใหม่

  • ประสิทธิภาพและความเร็ว (Performance): การใช้ Native API โดยตรงช่วยลด Overhead ของไลบรารีภายนอก ทำให้โค้ดทำงานได้รวดเร็วยิ่งขึ้น ซึ่งส่งผลโดยตรงต่อ Core Web Vitals และประสบการณ์ผู้ใช้งานโดยรวม
  • ความยืดหยุ่นและอิสระจาก Framework (Framework Agnostic): การพึ่งพา DOM API พื้นฐานทำให้โค้ดของเราสามารถทำงานได้ไม่ว่าคุณจะใช้ React, Vue, Angular หรือแม้แต่ Pure JS โดยไม่มีข้อจำกัดด้านการผูกติดกับไลบรารีใดๆ
  • มาตรฐานและการบำรุงรักษา (Maintainability): การใช้เมธอดที่เป็นมาตรฐานของ JavaScript ทำให้โค้ดของเราอ่านง่าย เข้าใจได้ง่ายสำหรับนักพัฒนาคนอื่น และสอดคล้องกับแนวทางปฏิบัติที่ดีที่สุดในอุตสาหกรรม

การเปลี่ยนจากการใช้ไวยากรณ์ที่คุ้นเคยจากไลบรารีภายนอก มาสู่การทำความเข้าใจและใช้พลังของ DOM API พื้นฐานอย่าง document.querySelectorAll() ไม่ใช่แค่เพียงการปรับโค้ด แต่คือการยกระดับทักษะการเป็น Senior Developer อย่างแท้จริง มันแสดงให้เห็นถึงความเชี่ยวชาญในการเขียนโค้ดที่เบา (Lightweight), มีประสิทธิภาพสูง, และสามารถขยายตัวได้ในอนาคต ทำให้เราพร้อมรับมือกับโจทย์ด้าน Performance Optimization ในโปรเจกต์ขนาดใหญ่ได้อย่างมั่นใจ


อ่านเพิ่มเติม

Exit mobile version