I am trying to add an item to a current array.
var arrayValues = new Array();
arrayValues.push("Value 1");
arrayValues.push("Value 2");
arrayValues = document.getElementsByTagName('a');
arrayValues.push("Value 3");
By doing this way I get a error, and I dont get value 1 and value 2, after getting the hyperlink collection when I try to add a new item it throws Error: Object doesn't support this property or method which is the push method.
What is happening to the array after the collection of hyperlinks is assigned ? How can I add a new item to it ?
To add new value to an existing array, use the JavaScript splice() method.
There are 3 popular methods which can be used to insert or add an object to an array. The push() method is used to add one or multiple elements to the end of an array. It returns the new length of the array formed. An object can be inserted by passing the object as a parameter to this method.
In Java, arrays can't grow once they have been created; so, to add an element, you need to: Create a new, larger array. Copy over the content of the original array. Insert the new element at the end.
Adding new elements at the beginning of the existing array can be done by using the Array unshift() method.
Did you mean arrayValues.push(document.getElementsByTagName('a'));
?
Otherwise, you're assigning the NodeList
returned by getElementsByTagName()
, which overwrites the array you had just pushed values into.
Side note: there's no reason to use new Array()
here. Just write var arrayValues = [];
.
If you want to push all <a>
elements to the array, you have to convert the NodeList to an array first. Most people use Array.prototype.slice.call(nodelist)
.
Once you have an array, you can then use array.push
in conjunction with function.apply
to push them in one call.
The resulting code looks like:
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");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With