Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> HTML

แอตทริบิวต์ id: ระบุ ID เฉพาะตัวสำหรับองค์ประกอบใน HTML

แอตทริบิวต์ id ใช้ระบุ ตัวระบุเฉพาะตัว (Unique Identifier) ให้กับองค์ประกอบ HTML ในหน้าเว็บเดียวกัน ต้องไม่ซ้ำกัน (Unique) ใช้สำหรับ CSS Selector, JavaScript DOM Access, Anchor Links, ARIA, และ Form Labels

กฎการตั้งชื่อ ID

  • ต้อง ไม่ซ้ำกัน ในหน้าเว็บเดียวกัน (Duplicate ID = Invalid HTML)
  • ต้องมีอย่างน้อย 1 ตัวอักษร
  • ไม่ควรมี Space (เว้นวรรค)
  • ควรเริ่มต้นด้วยตัวอักษร (A-Z, a-z) - HTML4 กำหนด, HTML5 ยอมรับอะไรก็ได้
  • Case-sensitive (myId ≠ myid)
  • อักขระที่ใช้ได้: ตัวอักษร, ตัวเลข, Hyphen (-), Underscore (_), Colon (:), Period (.)

ตัวอย่างการใช้งาน

<html>
<body>
    <h1>Tutorialspoint</h1>
    <p id="myid">เราให้บริการบทเรียน!</p>
    <button onclick="display()">เพิ่มเติม...</button>
    <script>
        function display() {
            // เข้าถึงผ่าน ID
            document.getElementById("myid").innerHTML = "เรายังให้วิดีโอการเรียนรู้อีกด้วย";
        }
    </script>
</body>
</html>

การใช้งาน ID หลักๆ

การใช้งาน ตัวอย่าง
CSS Selector #myid { color: red; }
JavaScript Access document.getElementById('myid')
Anchor Link (Fragment) <a href="#section1">ไป Section 1</a>
Label for <label for="email">Email</label> <input id="email">
ARIA aria-labelledby="title-id", aria-describedby="desc-id"
Form Owner (form=) <input form="myForm">

แนวทางปฏิบัติที่ดี (Best Practices)

  • ใช้ Semantic Naming: id="main-navigation" ดีกว่า id="nav1"
  • ใช้ kebab-case: user-profile-card (สอดคล้องกับ CSS, Data Attributes)
  • หลีกเลี่ยง ID ที่สร้างโดย Auto-increment (id="item-1", id="item-2") ใน List - ใช้ Class/Index แทน
  • สำหรับ Component Libraries: ใช้ Prefix เช่น id="myapp-modal-"

⚠️ Duplicate ID Problems

  • document.getElementById() คืนค่า แค่ตัวแรก ที่เจอ
  • Label `for` ผูกกับตัวแรก
  • Anchor Link ไปตัวแรก
  • CSS `#id` ใช้กับทุกตัว (แต่ Specificity เหมือนกัน)
  • ARIA อาจอ้างอิงผิด