2011-09-20 43 views
13

thể trùng lặp:
document.getElementById(“someId”) Vs. someIdSự khác nhau giữa document.getElementById ('mybox') và mybox là gì?

Ví dụ tôi có một phần tử với id="mybox" thuộc tính, là có bất kỳ sự khác biệt giữa gọi nó với document.getElementById('mybox')mybox trực tiếp, như tôi nhìn thấy cả hai công việc cùng một trong hầu hết các trình duyệt? Các jsfiddle lãm dụ sốnghttp://jsfiddle.net/usmanhalalit/TmS3k/

Nếu không có sự khác biệt thì tại sao document.getElementById('mybox') là rất phổ biến, nó là một thực tế xấu để gọi mybox trực tiếp?

+0

Xem thêm [là các yếu tố cây DOM biến toàn cầu ở đây?] (Http://stackoverflow.com/q/3434278/1048572) – Bergi

Trả lời

21

Một số trình duyệt ở một số chế độ hiển thị sẽ tạo biến toàn cầu cho từng phần tử có id.

Không chuẩn, không hoạt động ở mọi nơi và chắc chắn không thể phụ thuộc vào.

+0

Câu trả lời hay, cảm ơn :) – Usman

6

Chúng không "làm việc giống nhau". IE đã giới thiệu các id phần tử thành các biến toàn cầu, các trình duyệt khác đã sao chép nó ở một mức độ nào đó nhưng không hỗ trợ đầy đủ nó. Nó được coi là một ý tưởng rất xấu, chỉ cần không làm điều đó.

+0

+1 cảm ơn, nhưng tôi phải chọn chỉ một câu trả lời . – Usman

4

mybox.value không hoạt động trong hầu hết các trường hợp. Tôi tin rằng IE là trình duyệt duy nhất (và chỉ một số phiên bản của nó) có thể hỗ trợ nó. Trong trình duyệt Firefox của tôi, tôi nhận được thông báo lỗi mybox not defined trong bảng điều khiển.

+0

+1 cảm ơn, nhưng tôi phải chọn chỉ một câu trả lời. – Usman

Các vấn đề liên quan