ดังที่นักพัฒนา JavaScript ผู้ช่ำชองรู้ดีว่ามีหลายวิธี (มากเกินไป) ในการทำสิ่งเดียวกัน ตัวอย่างเช่นสมมติว่าคุณมีช่องข้อความดังนี้:
<form name="myForm">
<input type="text" name="foo" id="foo" />
มีหลายวิธีในการเข้าถึงสิ่งนี้ใน JavaScript:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
วิธีการ [1] และ [3] ได้รับการบันทึกไว้อย่างดีในเอกสารของ Mozilla Gecko แต่ไม่เหมาะอย่างยิ่ง [1] กว้างเกินไปที่จะเป็นประโยชน์และ [3] ต้องใช้ทั้ง ID และชื่อ (สมมติว่าคุณจะโพสต์ข้อมูลเป็นภาษาฝั่งเซิร์ฟเวอร์) ตามหลักการแล้วจะเป็นการดีที่สุดที่จะมีเพียงแอตทริบิวต์ id หรือแอตทริบิวต์ name (การมีทั้งสองอย่างค่อนข้างซ้ำซ้อนโดยเฉพาะอย่างยิ่งถ้า id ไม่จำเป็นสำหรับ css ใด ๆ และเพิ่มโอกาสในการพิมพ์ผิด ฯลฯ )
[2] ดูเหมือนจะใช้งานง่ายที่สุดและดูเหมือนว่าจะมีการใช้กันอย่างแพร่หลาย แต่ฉันไม่เห็นมันถูกอ้างถึงในเอกสารประกอบของ Gecko และฉันกังวลเกี่ยวกับความเข้ากันได้ของการส่งต่อและความเข้ากันได้ข้ามเบราว์เซอร์ (และแน่นอนว่าฉันอยากเป็น เป็นไปตามมาตรฐานที่สุด)
แนวทางปฏิบัติที่ดีที่สุดคืออะไร? ใครสามารถชี้ไปที่บางสิ่งในเอกสาร DOM หรือข้อกำหนด W3C ที่สามารถแก้ไขปัญหานี้ได้
หมายเหตุฉันสนใจโซลูชันที่ไม่ใช่ไลบรารี (jQuery / Prototype) เป็นพิเศษ