2012-01-14 39 views
6

Tại sao mã này không hoạt động? Tôi đang sử dụng FF.getElementById và null - tại sao?

<head> 
<script type="text/javascript"> 

document.getElementById("someID").onclick = function(){ 
    alert("Yahooo"); 
} 
</script> 
</head> 

<body> 
<a href="#" id="someID">someID</a> 
</body> 

</html> 

Tôi gặp lỗi javascript getElementById bằng không.

Trả lời

10

DOM cần thiết không được tải khi tập lệnh được thực thi. Hoặc di chuyển xuống dưới (href) hoặc xác định nó như sau:

window.onload = function() { 
    document.getElementById("someID").onclick = function(){ 
     alert("Yahooo"); 
    } 
} 

window.onload sẽ được gọi khi trang được tải hoàn toàn.

2

Vì phần tử chưa tồn tại khi tập lệnh chạy - tài liệu chưa được hiển thị. Hoặc chạy tập lệnh trong khối tập lệnh sau HTML có liên quan hoặc sử dụng trình xử lý sự kiện "tài liệu sẵn sàng" - tốt hơn là từ sự kiện .ready() của jQuery hoặc số window.onload gốc.

+0

OMG! Facepalm. Cảm ơn :) – lunar

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