gpt4 book ai didi

javascript - 选项.删除();不起作用,奇怪的行为

转载 作者:行者123 更新时间:2023-11-30 09:26:15 25 4
gpt4 key购买 nike

我有一个 Paypal 选择,我有不同的选择。我只想选择一个选项并删除其余选项。为此,我得到了这段代码:

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);
}
}

这里是从paypal中选择的,

<input type="hidden" name="on0" value="people">people</td></tr><tr><td><select name="os0" id="os0">
<option id="1" value="1">1 €123,97 EUR</option>
<option id="2" value="2">2 €249,94 EUR</option>
<option id="3" value="3">3 €371,91 EUR</option>
<option id="4" value="4">4 €495,88 EUR</option>
<option id="5" value="5">5 €619,85 EUR</option>
<option id="6" value="6">6 €743,82 EUR</option>
<option id="7" value="7">7 €867,79 EUR</option>
<option id="8" value="8">8 €991,76 EUR</option>
<option id="9" value="9">9 €1.115,73 EUR</option>
<option id="10" value="10">10 €1.239,70 EUR</option>
</select>

所以发生的事情非常奇怪,它只删除了 tha paar 数字,并且只计数到 5 或 6,如果我发送例如 1 个人,结果是:

  • 1 123.97 欧元
  • 3 371.91 欧元
  • 5 619,85 欧元
  • 7 867,79 欧元
  • 9 1.115,73 欧元

如果我选择 2 个人:

  • 2 249.94 欧元
  • 4 495,88 欧元
  • 6 743.82 欧元
  • 8 991,76 欧元
  • 10 1.239,70 欧元

我还有一个警报,告诉我“i”在哪里,它只上升到 5 或 4,不明白。

最佳答案

当您删除 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;
}
}

使用 3 的实例(没有 alert):

var people = 3;
var selectobject = document.getElementById("os0"); //this is the select
var i = 0;
while (i < selectobject.length) {
if (selectobject.options[i].value != people){
selectobject.remove(i);
} else {
++i;
}
}
<select name="os0" id="os0">
<option id="1" value="1">1 €123,97 EUR</option>
<option id="2" value="2">2 €249,94 EUR</option>
<option id="3" value="3">3 €371,91 EUR</option>
<option id="4" value="4">4 €495,88 EUR</option>
<option id="5" value="5">5 €619,85 EUR</option>
<option id="6" value="6">6 €743,82 EUR</option>
<option id="7" value="7">7 €867,79 EUR</option>
<option id="8" value="8">8 €991,76 EUR</option>
<option id="9" value="9">9 €1.115,73 EUR</option>
<option id="10" value="10">10 €1.239,70 EUR</option>
</select>

关于javascript - 选项.删除();不起作用,奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48947642/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com