删除选择列表的Javascript循环限制不断变化

标签 javascript html select

我正在尝试删除 HTML 选择列表。这是我正在使用的:

var size = DID(SourceDiv + Number).options.length;
    DeleteSelectElements(SourceDiv+Number,size);

function DeleteSelectElements(Div,Len){
    var k;
    var Length = Len
    for (k = 0; k < Length; k++) {
        DID(Div).options[k] = null;
    }
}

DID 只返回实际的 HTML 元素。问题是只有 EXACTLY hold 列表被删除。 Len 参数正在更改,因为它与大小有关,而大小与列表的实际长度有关。因此,当我在函数中删除时,它实际上改变了“长度”并且从未到达列表的实际末尾:s

最佳答案

问题你已经发现了:每删除一个元素,长度就会减少,也就是说有效索引的个数也会减少一个。因此,与其尝试从 0 删除到 Length,不如继续删除第一个元素,直到列表为空:

var e = DID(Div).options;
while (e.length > 0)
  e.remove(0);

关于删除选择列表的Javascript循环限制不断变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987506/

相关文章:

javascript - HTML 中鼠标跟随的动画图像蒙版

javascript - 使用 JavaScript 或 AJAX 从 HTML 表单中提取数据,然后将其传递给 PHP

mysql - Select 语句在行值中看不到 @ 后面的字符

javascript - HIghcharts 衡量不需要的白色边框

javascript - 将键盘按键事件从 html5 文本框转发到游戏 Canvas

javascript - 检查随机数是否在数组中,如果为真则再次随机化?

html - 从 Bootstrap 中删除响应功能

javascript - 如何在数据数组的每次迭代中创建内容为 "i+1"的新 HTML 元素

mysql - 为什么我在 View SELECT 查询中收到带有 WHERE 子句的 "Unknown column ' xyz'"?

python - 在Python中调用select