javascript изменить innerhtml
ok im new на javascript, но я пытаюсь изменить innerhtml тега div, heres мой скрипт и его не работает:
<head>
<script type="text/javascript">
function var1() {
document.getElementById('test').innerHTML = 'hi';
}
window.onLoad = var1();
</script>
</head>
<body>
<div id="test">change</div>
</body>
он должен работать, но по какой-то причине его нет, никакой помощи?
7 ответов
вместо того, чтобы назначать var1
to window.onload
, в настоящее время вы вызываете функцию и сохраняете ее результат. Кроме того, это может быть очевидно, но var1
Кажется странным именем для функции. Попробуйте это:
function var1() {
document.getElementById('text').innerHTML = 'hi';
}
window.onload = var1;
Примечание корпус onload
, а также отсутствующие скобки после var1
.
С помощью .innerHTML
is нестандартные, и ужасная практика по многим причинам. вы должны создать новый элемент, используя правильные стандартные методы, и добавить его в дерево, где вы хотите его
правильно:
window.onload = var1;
в вашем примере значение window.события onload составляет undefined
потому что функция var1 ничего не возвращает (undefined
). Вы должны установить свойство onload в функцию var1, а не результат вызова функции var1()
вы получаете элемент с идентификатором "test", но в вашем html нет элемента с этим идентификатором. Существует, однако, один под названием "Текст".
ваш пример будет работать, если вы измените верхний регистр " L "на нижний регистр" L "в" onLoad " и удалите скобки после var1, где у вас в настоящее время есть
попробуйте изменить onLoad на onload.
function var1() { document.getElementById('test').innerHTML = 'hi'; } window.onload = var1; // onload
Ниже Еще одна более простая версия
<body>
<div id="test">change</div>
<script type="text/javascript">
document.getElementById('test').innerHTML = 'hi';
</script>
</body>