Javascript 选项。删除();不';不工作,行为怪异

Javascript 选项。删除();不';不工作,行为怪异,javascript,php,select,Javascript,Php,Select,我有一个贝宝选择,在那里我有不同的选择。我只想选择一个选项,然后删除其余的选项。为此,我有以下代码: var selectobject=document.getElementById("os0"); //this is the select for (var i=0; i<selectobject.length; i++){ if (selectobject.options[i].value != <?php echo $people; ?> )

我有一个贝宝选择,在那里我有不同的选择。我只想选择一个选项,然后删除其余的选项。为此,我有以下代码:

var selectobject=document.getElementById("os0"); //this is the select
        for (var i=0; i<selectobject.length; i++){
        if (selectobject.options[i].value != <?php echo $people; ?> ){
            selectobject.remove(i);
            alert(i);
        }
    }
var-selectobject=document.getElementById(“os0”)//这是选择

对于(var i=0;i当您在
i
处删除该选项时,您正在向下移动所有其他选项;因此,现在,下一个选项在
i
处。但是,由于您在
处使用
for
循环,因此您在增加
i
,并且您从未在删除该选项后查看该选项

相反,使用
while
循环,如果不删除该选项,则仅递增
i

var selectobject = document.getElementById("os0"); //this is the select
var i = 0;
while (i < selectobject.length) {
    if (selectobject.options[i].value != <?php echo $people; ?> ){
        selectobject.remove(i);
        alert(i);
    } else {
        ++i;
    }
}

1欧元123,97欧元
2 249,94欧元
3欧元371,91欧元
4欧元495,88欧元
5欧元619,85欧元
6欧元743,82欧元
7 867,79欧元
8欧元991,76欧元
9欧元1.115,73欧元
10欧元1.239,70欧元

当您在
i
删除该选项时,您正在向下移动所有其他选项;因此,现在,下一个选项在
i
处。但是,因为您正在为
循环使用
,所以您正在递增
i
——并且您从未在删除该选项后查看该选项

相反,使用
while
循环,如果不删除该选项,则仅递增
i

var selectobject = document.getElementById("os0"); //this is the select
var i = 0;
while (i < selectobject.length) {
    if (selectobject.options[i].value != <?php echo $people; ?> ){
        selectobject.remove(i);
        alert(i);
    } else {
        ++i;
    }
}

1欧元123,97欧元
2 249,94欧元
3欧元371,91欧元
4欧元495,88欧元
5欧元619,85欧元
6欧元743,82欧元
7 867,79欧元
8欧元991,76欧元
9欧元1.115,73欧元
10欧元1.239,70欧元

当您在迭代过程中删除项目时,每次删除项目时,
i
中当前处理的元素将被偏移

如果以相反的方式删除它们,则不会出现问题。如果需要值为
9
的元素,请参阅下面的示例

document.addEventListener('DOMContentLoaded',function(){
var selectobject=document.getElementById(“os0”);//这是选择
对于(变量i=selectobject.length-1;i>=0;i--){
if(selectobject.options[i].value!=9){
选择object.remove(i);
}
}
},false);
人
1欧元123,97欧元
2 249,94欧元
3欧元371,91欧元
4欧元495,88欧元
5欧元619,85欧元
6欧元743,82欧元
7 867,79欧元
8欧元991,76欧元
9欧元1.115,73欧元
10欧元1.239,70欧元

当您在迭代过程中删除项目时,每次删除项目时,
i
中当前处理的元素将被偏移

如果以相反的方式删除它们,则不会出现问题。如果需要值为
9
的元素,请参阅下面的示例

document.addEventListener('DOMContentLoaded',function(){
var selectobject=document.getElementById(“os0”);//这是选择
对于(变量i=selectobject.length-1;i>=0;i--){
if(selectobject.options[i].value!=9){
选择object.remove(i);
}
}
},false);
人
1欧元123,97欧元
2 249,94欧元
3欧元371,91欧元
4欧元495,88欧元
5欧元619,85欧元
6欧元743,82欧元
7 867,79欧元
8欧元991,76欧元
9欧元1.115,73欧元
10欧元1.239,70欧元

嘿!行得通,谢谢!!我没想到索引的东西!嘿!行得通,谢谢!!我没想到索引的东西!