我有一些Javascript代码从HTMLCollection中删除项目,如下面的代码.调用splice时出现错误:allInputs.splice不是函数.如果元素类型不是按钮类型,我需要从HTMLCollection中删除项目.
问题:如何从此类集合中删除项目?
我可以将未删除的项目传输到数组,然后我可以使用数组而不是原始的HTMLCollection,但不确定是否还有其他更短的方法.
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
}
}
解决方法:
HTMLCollection是一个类似实时数组的对象,这意味着如果你需要从这样的集合中删除一个元素,你将不得不从DOM中删除它.您始终可以将其克隆到Array中进行操作.