Như bất kỳ nhà phát triển JavaScript dày dạn nào cũng biết, có rất nhiều (quá nhiều) cách để làm điều tương tự. Ví dụ: giả sử bạn có trường văn bản như sau:
<form name="myForm">
<input type="text" name="foo" id="foo" />
Có nhiều cách để truy cập điều này trong JavaScript:
[1] document.forms[0].elements[0];
[2] document.myForm.foo;
[3] document.getElementById('foo');
[4] document.getElementById('myForm').foo;
... and so on ...
Các phương thức [1] và [3] được ghi lại tốt trong tài liệu Mozilla Gecko, nhưng cả hai đều không lý tưởng. [1] quá chung chung là không hữu ích và [3] yêu cầu cả id và tên (giả sử bạn sẽ đăng dữ liệu lên ngôn ngữ phía máy chủ). Lý tưởng nhất là tốt nhất chỉ có một thuộc tính id hoặc thuộc tính tên (có cả hai là hơi dư thừa, đặc biệt là nếu id không cần thiết cho bất kỳ css nào và làm tăng khả năng lỗi chính tả, v.v.).
[2] dường như là trực quan nhất và nó dường như được sử dụng rộng rãi, nhưng tôi chưa thấy nó được tham chiếu trong tài liệu của Gecko và tôi lo lắng về cả khả năng tương thích và tương thích trình duyệt chéo (và tất nhiên tôi muốn trở thành càng tuân thủ tiêu chuẩn càng tốt).
Vì vậy, những gì thực hành tốt nhất ở đây? Bất cứ ai cũng có thể chỉ ra một cái gì đó trong tài liệu DOM hoặc đặc tả W3C có thể giải quyết vấn đề này?
Lưu ý Tôi đặc biệt quan tâm đến một giải pháp không phải thư viện (jQuery / Prototype).