PlusMagi's Blog By Pitt Phunsanit Frontend,JavaScript,technology,Web Class manipulation via ClassList API: add(), remove(), toggle(), contains()

Class manipulation via ClassList API: add(), remove(), toggle(), contains()

ในโลกของการพัฒนาเว็บสมัยใหม่ การที่องค์ประกอบบนหน้าจอจะต้องตอบสนองต่อการกระทำของผู้ใช้ (User Interaction) หรือเปลี่ยนแปลงสถานะตามข้อมูลแบบเรียลไทม์ ถือเป็นหัวใจสำคัญของประสบการณ์ผู้ใช้งานที่ดีเยี่ยม การจัดการกับสไตล์และพฤติกรรมเหล่านี้ส่วนใหญ่มักจะถูกควบคุมผ่าน CSS classes ซึ่งทำให้เราต้องมีกลไกที่ทรงพลังในการเพิ่ม ลบ หรือตรวจสอบคลาสเหล่านั้นบน DOM element อย่างแม่นยำ


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

เมื่อพูดถึงการจัดการคลาสอย่างมีประสิทธิภาพใน JavaScript เราจะพิจารณาถึง classList API ซึ่งเป็นคุณสมบัติที่ถูกออกแบบมาเพื่อแก้ปัญหาความยุ่งยากของการจัดการสตริง (String) ของ class name แบบเดิมๆ การใช้ classList ทำให้โค้ดของเรามีความสะอาด (Clean) และอ่านง่ายขึ้นอย่างมาก เพราะมันให้เมธอดเฉพาะทางสำหรับการดำเนินการกับคลาสแต่ละตัวโดยไม่กระทบต่อคลาสอื่น ๆ ที่อาจมีอยู่

classList มาพร้อมกับชุดคำสั่งที่จำเป็นครบถ้วน ได้แก่ add() สำหรับการเพิ่มคลาส, remove() สำหรับการลบคลาสออก, toggle() ที่เป็นประโยชน์อย่างยิ่งในการสลับสถานะ (เช่น เปิด/ปิด) และ contains() สำหรับการตรวจสอบว่าองค์ประกอบนั้นมีคลาสนั้น ๆ อยู่หรือไม่ การใช้เมธอดเหล่านี้ช่วยให้เราสามารถควบคุม State ของ UI ได้อย่างเป็นระเบียบและลดโอกาสเกิด Bug จากการจัดการสตริงที่ซับซ้อน

const element = document.getElementById('myElement');

// 1. add(): เพิ่มคลาสใหม่
element.classList.add('active', 'highlight');

// 2. remove(): ลบคลาสที่ต้องการออก
element.classList.remove('inactive');

// 3. toggle(): สลับสถานะของคลาส (ถ้ามีอยู่จะลบ, ถ้าไม่มีจะเพิ่ม)
element.classList.toggle('is-open');

// 4. contains(): ตรวจสอบว่ามีคลาสนั้นหรือไม่ (คืนค่า boolean)
const hasActiveClass = element.classList.contains('active'); // true/false

if (hasActiveClass) {
    console.log("Element is currently active.");
}


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

  • การจัดการสถานะ UI (State Management):
  • การสร้าง Component ที่ตอบสนอง (Interactive Components):

ในทางปฏิบัติ การใช้ classList เป็นรากฐานสำคัญในการพัฒนา Single Page Applications (SPA) ไม่ว่าจะเป็นการทำ Modal Pop-up ที่ต้องเพิ่มคลาส ‘is-visible’ เมื่อเปิด หรือการสร้าง Carousel ที่ต้องสลับคลาส ‘active’ ให้กับภาพที่กำลังแสดงอยู่ การควบคุมสถานะด้วยคลาสทำให้โค้ดของเราแยกส่วนความรับผิดชอบระหว่าง JavaScript (Logic) และ CSS (Presentation) ได้อย่างสมบูรณ์แบบ


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