ฉันทำงานบนเว็บไซต์มาเป็นเวลานาน แต่ฉันไม่ได้ค้นพบความแตกต่างระหว่างชื่อและ ID ในอินพุต เมื่อเร็ว ๆ นี้ฉันได้เรียนรู้ jQuery และพบปัญหานี้อีกครั้งดังนั้นฉันจึงรวบรวมข้อมูลออนไลน์ หลังจากได้เห็นบทความนี้จัดระเบียบเพื่อใช้ในภายหลัง
อาจกล่าวได้ว่าเกือบทุกคนที่ได้ทำการพัฒนาเว็บได้ถามว่าอะไรคือความแตกต่างระหว่าง Element ID และชื่อ? ทำไมเราถึงต้องการชื่อด้วย ID! และเรายังสามารถรับคำตอบคลาสสิกมากที่สุด: ID ก็เหมือนหมายเลข ID ของบุคคลและชื่อก็เหมือนชื่อของเขา ID นั้นไม่ซ้ำกันอย่างชัดเจนและสามารถทำซ้ำชื่อได้
สัปดาห์ที่แล้วฉันยังพบปัญหาของ ID และชื่อ ฉันป้อนประเภทอินพุต = ซ่อนอยู่ในหน้าและเขียนเฉพาะ id = 'sliceinfo' หลังจากการมอบหมายฉันใช้คำขอพารา [sliceinfo] ในพื้นหลัง แต่ไม่สามารถรับค่าได้ ต่อมาฉันก็รู้ทันทีว่าฉันควรใช้ชื่อเพื่อระบุดังนั้นฉันจึงเพิ่ม name = 'sliceinfo' ลงในอินพุตและทุกอย่างก็โอเค
คำตอบของ ID และชื่อในย่อหน้าแรกนั้นทั่วไปเกินไป แน่นอนคำอธิบายนั้นถูกต้องอย่างสมบูรณ์สำหรับ ID มันเป็นตัวตนขององค์ประกอบ HTML บนไคลเอนต์ ชื่อมีความซับซ้อนมากขึ้นเนื่องจากชื่อมีการใช้งานมากมายดังนั้นจึงไม่สามารถแทนที่ด้วย ID ได้ดังนั้นจึงยกเลิก การใช้งานเฉพาะคือ:
วัตถุประสงค์ 1: ในฐานะฉลากฝั่งเซิร์ฟเวอร์สำหรับองค์ประกอบ HTML ที่สามารถโต้ตอบกับเซิร์ฟเวอร์เช่นอินพุตเลือก textarea และปุ่ม เราสามารถรับค่าที่ส่งโดยองค์ประกอบผ่าน request.params ทางฝั่งเซิร์ฟเวอร์ตามชื่อ
วัตถุประสงค์ 2: การจัดกลุ่มองค์ประกอบ HTML อินพุต = 'วิทยุ' ถูกจัดกลุ่ม เรารู้ว่าการควบคุมปุ่มตัวเลือกอยู่ในคลาสการจัดกลุ่มเดียวกัน การดำเนินการตรวจสอบคือ mutex สามารถเลือกวิทยุเพียงรายการเดียวในเวลาเดียวกัน การจัดกลุ่มนี้ดำเนินการตามแอตทริบิวต์ชื่อเดียวกัน
วัตถุประสงค์ 3: สร้างจุดยึดในหน้า เรารู้ว่า <a href = url> ลิงก์ </a> คือการได้รับไฮเปอร์ลิงก์หน้า หากเราไม่ใช้แอตทริบิวต์ HREF เราจะใช้ชื่อแทนเช่น: <a name = pageBottom> </a> เราจะได้รับจุดยึดหน้า
วัตถุประสงค์ 4: ตัวตนเป็นวัตถุเช่นแอปเพล็ตวัตถุฝังและองค์ประกอบอื่น ๆ ตัวอย่างเช่นในอินสแตนซ์ออบเจ็กต์แอปเพล็ตเราจะใช้ชื่อเพื่ออ้างอิงวัตถุ
วัตถุประสงค์ที่ 5: เมื่อเชื่อมโยงระหว่างองค์ประกอบ IMG และองค์ประกอบแผนที่หากคุณต้องการกำหนดพื้นที่ฮอตสปอตของ IMG คุณต้องใช้แอตทริบิวต์ USEMAP เพื่อสร้าง usemap =#ชื่อ (ชื่อขององค์ประกอบแผนที่ที่เกี่ยวข้อง)
วัตถุประสงค์ 6: คุณลักษณะขององค์ประกอบเฉพาะบางอย่างเช่นแอตทริบิวต์เมตาและพารามิเตอร์ ตัวอย่างเช่นกำหนดพารามิเตอร์ <param name = appletParameter value = value> สำหรับวัตถุหรือ <meta name = เนื้อหาผู้เขียน = dave raggett> ใน meta
เห็นได้ชัดว่าการใช้งานเหล่านี้ไม่สามารถแทนที่ได้ด้วย ID ดังนั้น ID ขององค์ประกอบ HTML และชื่อไม่ใช่ความแตกต่างระหว่างหมายเลข ID และชื่อ พวกเขายังเป็นสิ่งที่แตกต่างกัน
แน่นอนว่าแอตทริบิวต์ชื่อขององค์ประกอบ HTML ยังสามารถมีบทบาท ID เล็กน้อยในหน้าเนื่องจากในแผนผังวัตถุ DHTML เราสามารถใช้ document.getElementsByName เพื่อรับอาร์เรย์ของวัตถุที่มีองค์ประกอบชื่อที่ระบุทั้งหมดในหน้า มีปัญหาอีกอย่างหนึ่งเกี่ยวกับแอตทริบิวต์ชื่อ เมื่อเราสร้างองค์ประกอบที่สามารถมีแอตทริบิวต์ชื่อแบบไดนามิกเราไม่สามารถใช้ Elementment Element.name = ... เพื่อเพิ่มชื่อ แต่เราต้องใช้ document.createElement ('<element name = myName> </element>') เพื่อเพิ่มแอตทริบิวต์ชื่อลงในองค์ประกอบเมื่อสร้างองค์ประกอบ สิ่งนี้หมายความว่าอย่างไร? เพียงดูตัวอย่างด้านล่างเพื่อทำความเข้าใจ
คัดลอกรหัส