我正在尝试将项添加到当前数组。
var arrayValues = new Array();
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues = document.getElementsByTagName('a');
arrayValues.push("Value 3");
通过这种方式我得到一个错误,并且我得到超值集合后,当我尝试添加它抛出的新项目时,我得不到值1和值2错误:对象不支持此属性或方法,这是推送方法。
收集超链接后,数组发生了什么?如何添加新项目?
你的意思是 arrayValues.push(document.getElementsByTagName('a'));
?
否则,你正在分配 NodeList
归来的 getElementsByTagName()
,它会覆盖你刚刚将值推入的数组。
旁注:没有理由使用 new Array()
这里。写吧 var arrayValues = [];
。
你的意思是 arrayValues.push(document.getElementsByTagName('a'));
?
否则,你正在分配 NodeList
归来的 getElementsByTagName()
,它会覆盖你刚刚将值推入的数组。
旁注:没有理由使用 new Array()
这里。写吧 var arrayValues = [];
。
如果你想推动所有 <a>
对于数组的元素,您必须首先将NodeList转换为数组。大多数人使用 Array.prototype.slice.call(nodelist)
。
一旦你有了一个数组,你就可以使用了 array.push
和这个结合 function.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");