Почему document.getElementById() не работает?

#javascript #html #dom

#javascript #HTML #дом

Вопрос:

Я хочу создать программу, которая добавляет текстовое поле каждый раз, когда вы нажимаете кнопку. Вот мой код:

 window.onload = function () { linelist = document.getElementById("linelist"); };
function AddLine() {
    linelist.innerHTML  = "<div class="normallink"><input type="text"><button class="dustbin"><img src="dustbin.png"></button></div><br />";
} 
 <!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>

<body>
  <div id="linelist"></div><br />
  <button id="addline" onclick="Addline();"> </button>
</body>

</html> 

Когда я запускаю его, он выдает ошибку. Почему это происходит?

Комментарии:

1. Ваше имя функции AddLine , но вы использовали Addline обработчик onclick

2. Голосование за закрытие, потому что проблема вызвана опечаткой.

Ответ №1:

Сначала вы должны определить linelist внешние функции с let помощью или var :

 let linelist = null;
window.onload = function () { linelist = document.getElementById("linelist"); };
function AddLine() {
    linelist.innerHTML  = "<div class="normallink"><input type="text"><button 
class="dustbin"><img src="dustbin.png"></button></div><br />";
}
 

Комментарии:

1. Это верно только в строгом режиме, который этот код не использует. Здесь он создает неявный глобальный, который является плохой практикой, но отлично функционирует, а не является причиной проблемы,