假设有一个多选框:
现在我有2个javascript函数,用于移除所有选中的选项,我觉得他们的效果应该一样的:
但结果是,顺序遍历函数只能移除一半被选中的选项,而倒序遍历函数则使用正常,为什么?
<select id="select1" multiple="multiple">
<option>HELLO1</option>
<option>HELLO2</option>
<option>HELLO3</option>
......
......
<option>HELLO1000</option>
</select>
现在我有2个javascript函数,用于移除所有选中的选项,我觉得他们的效果应该一样的:
//顺序遍历
function removeSelectedASC()
{
obj = document.getElementById('select1');
for(var i=0;i<obj.length;i++)
{
if(obj.options[i].selected)
obj.remove(i);
}
}
//倒序遍历
function removeSelectedDESC()
{
obj = document.getElementById('select1');
for(var i=obj.length-1;i>=0;i--)
{
if(obj.options[i].selected)
obj.remove(i);
}
}
但结果是,顺序遍历函数只能移除一半被选中的选项,而倒序遍历函数则使用正常,为什么?
探讨了在JavaScript中从多选下拉框中删除已选选项时遇到的问题:正序删除只移除一半选项,而倒序删除则正常工作。分析了背后的原因并提供了示例代码。
288

被折叠的 条评论
为什么被折叠?



