I have some Javascript code to remove an item from a HTMLCollection as in code below. I get an error when splice is called that says: allInputs.splice is not a function
. I need to remove items from HTMLCollection if the element type is not of button type.
Question : How would I remove an item from such a collection?
I could transfer undeleted items to an array and then I could work with the array instead of original HTMLCollection but not sure if there is any other shorter way of doing this.
JavaScript code
var allInputs = contentElement.getElementsByTagName('input');
for (var i = (allInputs.length - 1) ; i >= 0; i--) {
if (allInputs[i].type !== "button") {
allInputs.splice(i, 1);//this is throwing an error since splice is not defined
}
}
You need to remove it from the DOM, so replace:
allInputs.splice(i, 1);
with:
allInputs[i].parentNode.removeChild(allInputs[i])
which is compatible wilth even ancient browsers like IE 6. The collection will update automatically. Iterating over the collection in reverse is a good idea as each time you remove a member, it will get shorter.
Note that:
[].slice.call(allInputs)
will fail in browsers like IE8 that do not allow host objects to be this in built–in methods.
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