Tôi đã gặp sự cố.Sự khác nhau giữa việc đặt kịch bản vào đầu và phần thân là gì?
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script type="text/javascript">
alert(document.getElementsByTagName("li").length);
</script>
<title>purchase list</title>
</head>
<body>
<h1>What to buy</h1>
<ul id="purchases">
<li> beans</li>
<li>Cheese</li>
</ul>
</body>
Khi tôi đưa kịch bản trong đầu, kết quả cho thấy 0
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Shopping list</title>
</head>
<body>
<h1>What to buy</h1>
<ul id="purchases">
<li>Cheese</li>
<li>Milk</li>
<script type="text/javascript">
alert(document.getElementsByTagName("li").length);
</script>
</ul>
</body>
Khi tôi cố gắng đưa script trong cơ thể, kết quả cho thấy 2. tại sao có sự khác biệt như vậy? sự khác biệt chính là gì?
Bởi vì tại thời điểm bạn gọi đó là vào đầu, các 'li' chưa tồn tại (Theo như DOM có liên quan) – George
Bạn nên đặt tất cả JavaScript của mình (không phải thư viện mà JS làm việc mà trang đó sử dụng) ở cuối trang. Đối với các thư viện, bạn nên "bao gồm" chúng trong '
' .Lưu ý rằng, trình duyệt đang hiển thị mã từ trên xuống dưới. – Kyslikbản sao có thể có của [Javascript - head, body hoặc jQuery?] (Http://stackoverflow.com/questions/10994335/javascript-head-body-or-jquery) –