HTML:
- <ul id="datalist">
- </ul>
JavaScript的:
- function add(content){
- ul=document.getElementsByTagName("ul");
- var li=document.createElement("li");
- li.innerHTML=content;
- ul.appendChild(li);
- }
当我调用add,Uncaught TypeError:Object#< NodeList>没有方法’appendChild’被抛出.任何想法为什么?
解决方法
getElementsByTagName()
不返回一个元素,它返回一个
NodeList,它是一个类似数组的对象.它基本上意味着你可以使用它作为一个数组.
所以你可以做到:
- var ul = document.getElementsByTagName("ul")[0];
但是为什么你不用简单地使用getElementById()
,如果该列表有ID呢? ID在整个文档中必须是唯一的,因此此方法只返回一个元素.
- var ul = document.getElementById('datalist');