从数组中删除元素:pop不是函数(javascript)

时间:2012-07-05 16:14:51

标签: javascript function pop

thead = new Array();
alert(thead.length);
thead = document.getElementsByTagName("th");
alert(thead.length);


thead.pop();
alert(thead.length);

document.getElementsByTagName("th")返回一个元素数组,所以thead变量应该是一个数组,如果是,那么为什么它给我错误“thead.pop()不是函数”?

3 个答案:

答案 0 :(得分:7)

getElementsByTagNamedocs)未返回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