thead = new Array();
alert(thead.length);
thead = document.getElementsByTagName("th");
alert(thead.length);
thead.pop();
alert(thead.length);
document.getElementsByTagName("th")
返回一个元素数组,所以thead
变量应该是一个数组,如果是,那么为什么它给我错误“thead.pop()不是函数”?
答案 0 :(得分:7)
getElementsByTagName
(docs)未返回Array
,它会返回NodeList
。如链接的NodeList
文档所述:
NodeList与数组非常相似,并且很容易在它们上使用Array.prototype方法。但是,这是不可能的。
您可以使用Array
执行一些NodeList
类似的事情,甚至可以.apply
使用Array.prototype
个方法,但是您应该阅读以下文档:避免“陷阱”,尤其是NodeList
被“活着”的问题可能会让你感到困扰。
答案 1 :(得分:0)
getElementsByTagName()
返回DOM 2 NodeList
,而不是Array
。
答案 2 :(得分:0)
从技术上讲,document.getElementsByTagName
会返回NodeList
个对象,该对象没有pop
函数。
尝试alert(Array.isArray(thead))
,您会看到它返回false