删除选择列表的Javascript循环限制不断更改
我正在尝试删除一个HTML选择列表。这就是我使用的:删除选择列表的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(
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,所以((kvar blah = DID(Div).options;
for(k = Length; k > 0; k--)
{
blah[k - 1] = null;
}