Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除选择列表的Javascript循环限制不断更改_Javascript_Html_Select - Fatal编程技术网

删除选择列表的Javascript循环限制不断更改

删除选择列表的Javascript循环限制不断更改,javascript,html,select,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(

我正在尝试删除一个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;
    }
}
var size=DID(SourceDiv+Number).options.length;
DeleteSelectElements(SourceDiv+数字、大小);
函数DeleteSelectElements(Div,Len){
var-k;
变量长度=Len
对于(k=0;k

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

您只能删除第一个元素!当您删除它时,第二个将成为新的第一个。。。所以删除第一个元素的
长度

function DeleteSelectElements(Div,Len){
    var k;
    var Length = Len
    for (k = 0; k < Length; k++) {
        DID(Div).options[0] = null;
    }
}
函数DeleteSelectElements(Div,Len){
var-k;
变量长度=Len
对于(k=0;k
您已经发现了问题:每次删除元素时,长度都会减少,这意味着有效索引的数量也会减少一个。因此,与其尝试从
0
删除到
Length
,不如持续删除第一个元素,直到列表为空:

var e = DID(Div).options;
while (e.length > 0)
  e.remove(0);
当然是: 如果您有一个包含10件事情的列表,并且确实删除了前5件事情,那么迭代器(k)是5,长度是5,所以((k
var blah = DID(Div).options;
for(k = Length; k > 0; k--)
{
    blah[k - 1] = null;
}