未捕获的TypeError:无法在HTMLButtonElement

时间:2017-03-18 20:11:47

标签: javascript html dom typeerror getelementsbytagname

任何人都可以帮助解决此错误吗?

控制台:

Uncaught TypeError: Cannot read property 'innerHTML' of null
    at HTMLButtonElement.<anonymous> (script.js:5)

html代码:

  <!DOCTYPE html>
    <html lang='en'>
	    <head>
		    <title>Eventy</title>
		    <meta charset="utf-8">
	    </head>
	    <body>
		    <ul id="list">
  			    <li>item 0</li>
		    </ul>
		    <button id="addElem">Add</button>
		    <script type="text/javascript" src="script.js"></script>
	    </body>
    </html>

的script.js:

var add = document.getElementById('addElem');
var list = document.getElementById('Lista'); 

add.addEventListener('click', function(){
list.innerHTML += '<li>item</li>'
});

var newLi = document.getElementsByTagName('li');
for (var i = 0; i < newLi.length; i++) {
newLi[i]
}

点击“添加”按钮后,我想获得新的'li'元素。谢谢你的帮助!

3 个答案:

答案 0 :(得分:0)

似乎有一个错字。您只需将var list = document.getElementById('Lista');重命名为var list = document.getElementById('list');,然后就可以了。检查下面(单击运行代码片段) -

var add = document.getElementById('addElem');
var list = document.getElementById('list'); 

add.addEventListener('click', function(){
list.innerHTML += '<li>item</li>'
});

var newLi = document.getElementsByTagName('li');
for (var i = 0; i < newLi.length; i++) {
newLi[i]
}
 <ul id="list">
            <li>item 0</li>
        </ul>
        <button id="addElem">Add</button>

答案 1 :(得分:0)

您没有任何ID为** Lista *的元素

这就是为什么JavaScript无法访问具有不存在ID的元素,因此innerHTML的属性为null。

编辑:将列表的变量getElementById值更改为“list”。

答案 2 :(得分:0)

正如上面评论中提到的adeneo,当您确实需要ID为Lista的元素时,您正在查询标识为list的元素:

var add = document.getElementById('addElem');
var list = document.getElementById('list');

add.addEventListener('click', function() {
  list.innerHTML += '<li>item</li>'
});

var newLi = document.getElementsByTagName('li');
for (var i = 0; i < newLi.length; i++) {
  newLi[i]
}
<!DOCTYPE html>
<html lang='en'>

<head>
  <title>Eventy</title>
  <meta charset="utf-8">
</head>

<body>
  <ul id="list">
    <li>item 0</li>
  </ul>
  <button id="addElem">Add</button>
  <script type="text/javascript" src="script.js"></script>
</body>

</html>