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


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

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

4

3 回答 3

7

getElementsByTagName文档)不返回一个Array,它返回一个NodeList。正如链接NodeList文档所说:

NodeList 的使用与数组非常相似,并且很想在它们上使用 Array.prototype 方法。然而,这是不可能的。

你可以用 a 做一些Array类似的事情NodeList,你甚至可以对它们使用.apply一些Array.prototype方法,但是你应该阅读文档以避免“陷阱”,尤其是在NodeList“生活”问题可能会咬到你的地方。

于 2012-07-05T16:17:40.290 回答
0

从技术上讲,document.getElementsByTagName返回一个NodeList没有pop功能的对象。

试一下alert(Array.isArray(thead)),你会看到它返回 false

于 2012-07-05T16:20:21.657 回答
0

getElementsByTagName()返回一个DOM 2 NodeList,而不是一个Array

于 2012-07-05T16:18:17.303 回答