2012-05-02 6 views
0

Вот мой код:Javascript отказывается работать ...

<html> 
<head> 
<title>Date Test</title> 
<script> 
document.getElementById("date").innerHTML = Date(); 
</script> 
</head> 
<body> 
<p>Today's date is <span id="date"></span></p> 
</body> 
</html> 

Когда я запускаю HTML документ, он показывает только «Сегодняшняя дата» ... ПОЧЕМУ?!?

ответ

5

<span id="date"> не существует, когда скрипт выполнен. Вы можете поместить его в onload обработчик, чтобы исправить это:

<script> 
onload = function() { 
    document.getElementById("date").innerHTML = Date(); 
}; 
</script> 

Это будет запускать скрипт через некоторое время после весь DOM готов. Конечно, вы можете справиться с DOMContentLoaded немедленно запустить код, когда DOM готов, а не после того, как также загружать ее содержимое, а другой (очень простой) способ положить скрипт перед закрывающими </body> тегом:

<html> 
<head> 
<title>Date Test</title> 
</head> 
<body> 
<p>Today's date is <span id="date"></span></p> 
<script> 
document.getElementById("date").innerHTML = Date(); 
</script> 
</body> 
</html> 
3

попытайтесь поместить сценарий непосредственно перед концом body, чтобы гарантировать, что DOM загружен:

<html> 
<head> 
<title>Date Test</title> 
</head> 
<body> 
<p>Today's date is <span id="date"></span></p> 
<script type="text/javascript"> 
document.getElementById("date").innerHTML = Date(); 
</script> 
</body> 
</html> 

Пример:http://jsfiddle.net/tQUUH/

Вот некоторые ресурсы, которые идут немного глубже на эту тему:

Если вы только учитесь JavaScript, MDN является большим ресурсом.

+0

Спасибо! Это мой первый опыт работы с JS. Ха-ха –

+0

@SamClark: Нет проблем! Не забудьте проверить ответ Minitech на несколько идей. –

Смежные вопросы