2016-03-09 12 views
5

JavaScript có đại diện cho từng phần tử HTML dưới dạng biến toàn cầu không, tên là id của phần tử?Phần tử HTML được thể hiện bằng JavaScript dưới dạng biến toàn cục, Làm cách nào?

Hãy nói rằng tôi có một yếu tố ẩn đầu vào như thế này:

<input type="hidden" value="10" id="myInput" /> 

vì vậy tôi có thể truy cập vào nó trong JavaScript:

console.log(myInput.value); 

Tôi đã thử nó trong chrome và firefox, và nó làm việc cho tôi .

Câu hỏi của tôi là:

  • là vấn đề này mới trong JavaScript?
  • Đây có phải là phương pháp hay nhất để lấy phần tử theo id không?
  • Tại sao chúng thực hiện chức năng này mặc dù việc sử dụng các biến toàn cục không phải là thực tiễn tốt nhất?

Trả lời

4

Điều đó được gọi là named access. Mỗi phần tử có mã số an sẽ được tham chiếu trong phạm vi toàn cầu. Đó là window object. Mặc dù nó không phải là một thực hành tốt để sử dụng nó, nó được tiêu chuẩn hóa với HTML5.

Một trường hợp mâu thuẫn đơn giản cho việc sử dụng của nó là,

Nếu bạn khai báo một biến trong phạm vi toàn cầu như hide, và bạn cũng đang có một element trong document của bạn với idhide. Sau đó, tham chiếu phần tử đó sẽ bị ghi đè bởi số global variable của chúng tôi. Tại thời điểm đó, nếu bạn sử dụng nó (element tham chiếu) trong bất kỳ trình xử lý sự kiện hoặc ở đâu đó, nó sẽ dẫn đến lỗi.

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