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');