首页 > 解决方案 > 移除所有被选中的元素之后的元素我在表单中有一个动态生成的 <selects> 列表。我需要这样做,以便如果用户决定返回到较早的 <select>,所有在它之后出现的 <select> 都将从页面中删除。我下面的代码将控制台记录要删除的正确 <select> 元素,但如果我开始删除它们,它就会停止工作。我正在使用非实时列表进行循环,所以我对为什么它没有按预期工作感到困惑。HTML: <form action="#" method="pos

问题描述

标签: javascriptselectremovechild

解决方案


正确编写时有效

var sel= 2; // for example
var form = document.getElementsByTagName('form')[0];
var selects = form.getElementsByTagName('select');
for (var i = selects.length-1; i >= 0; i--) {
    if (+selects[i].name > sel) {
        var eleToRemove = selects[i];
        console.log(eleToRemove);
        form.removeChild(eleToRemove.previousElementSibling); // removes label
        form.removeChild(eleToRemove);
    }
}


推荐阅读