appendChild при загрузке
Итак, вопрос в том, почему это не добавляет div'у при загрузке? Я почесал голову от этого. Нет ошибок... Просто не загружается.
<head>
<script type="text/javascript">
function load() {
var divTag0 = document.createElement("div");
divTag0.className = "newsBlock";
divTag0.innerHTML = " Try this..";
document.getElementById("newsLeft").appendChild(divTag0);
var divTag1 = document.createElement("div");
divTag1.className = "newsBlock";
divTag1.innerHTML = " Blah..";
document.getElementById("newsRight").appendChild(divTag1);
var divTag2 = document.createElement("div");
divTag2.className = "newsBlock";
divTag2.innerHTML = " And this ..";
document.getElementById("newsLeft").appendChild(divTag2);
}
</script>
</head>
<body>
<p> Something filler </p>
<div id="newsLeft">
</div>
<div id="newsRight">
</div>
<script type="text/javascript">
window.onload="load()";
</script>
</body>
2 ответа
Если ответ azhrei не работает, единственное, о чем я мог подумать, это то, что вызов onload после его загрузки может не сработать, вы можете изменить это в своем примере, просто вызвав load();
Я проверил это здесь
Надеюсь это поможет
РЕДАКТИРОВАТЬ:
Я считаю, что azhrei имеет на это право, дело не в том, что onload не срабатывает, а в том, что есть синтаксическая проблема с вашим вызовом onload.
Но этот код также может быть улучшен с точки зрения лучшего стиля (более читабельного / более легкого для понимания), удалив второй вызов JS.
В шапке, если вы напишите:
window.onload = function() {
//everything inside your load() function goes here
}
Это работает так же хорошо. Это также удаляет много пуха, который был только отчасти там. Надеюсь, это поможет.
Вы должны предоставить строку для getElementById...
Чтобы:document.getElementById(newsLeft).appendChild(divTag0);
Должно быть:document.getElementById("newsLeft").appendChild(divTag0);
Но главная проблема заключается в следующем:window.onload="load()";
Который должен быть:window.onload=load;
Спасибо jvillars за скрипку, которая помогла мне заметить это.