gpt4 book ai didi

javascript - 如何从 HTMLCollection 中删除一个项目?

转载 作者:搜寻专家 更新时间:2023-11-01 04:45:52 24 4
gpt4 key购买 nike

我有一些 Javascript 代码可以从 HTMLCollection 中删除一个项目,如下面的代码所示。调用 splice 时出现错误:allInputs.splice is not a function。如果元素类型不是按钮类型,我需要从 HTMLCollection 中删除项目。

问题:如何从这样的集合中删除一个项目?

我可以将未删除的项目传输到一个数组,然后我可以使用该数组而不是原始的 HTMLCollection,但不确定是否有任何其他更短的方法可以做到这一点。

JavaScript 代码

    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
}
}

最佳答案

您需要将其从 DOM 中删除,因此替换:

allInputs.splice(i, 1);

与:

allInputs[i].parentNode.removeChild(allInputs[i])

它甚至与 IE 6 等古老的浏览器兼容。该集合将自动更新。反向迭代集合是个好主意,因为每次删除成员时,它都会变短。

注意:

[].slice.call(allInputs)

在像 IE8 这样不允许宿主对象在内置方法中是 this 的浏览器中会失败。

关于javascript - 如何从 HTMLCollection 中删除一个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37311003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com