Javascript将项添加到当前数组

时间:2011-03-08 03:49:06

标签: javascript arrays array-push

我正在尝试将项添加到当前数组。

var arrayValues = new Array();
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues = document.getElementsByTagName('a');
arrayValues.push("Value 3");

通过这种方式我得到一个错误,并且我得到超值集合后获得超值集合时我得到错误,我尝试添加一个新项目它抛出错误:对象不支持此属性或方法,这是推送方法。

分配超链接集合后,数组发生了什么?如何添加新项目?

2 个答案:

答案 0 :(得分:14)

您的意思是arrayValues.push(document.getElementsByTagName('a'));吗?

否则,您将分配NodeList返回的getElementsByTagName(),它会覆盖您刚刚将值推入的数组。

旁注:这里没有理由使用new Array()。只需写下var arrayValues = [];

答案 1 :(得分:2)

如果要将所有<a>元素推送到数组,则必须先将NodeList转换为数组。大多数人使用Array.prototype.slice.call(nodelist)

如果您有阵列,则可以将array.pushfunction.apply结合使用,将其推送到一个电话中。

结果代码如下:

var arrayValues = [];
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues.push.apply(arrayValues, Array.prototype.slice.call(document.getElementsByTagName('a')));
arrayValues.push("Value 3");
相关问题