[英]Deleting an option in a <select> list
我有以下功能:
function delete_auswahl()
{
var anzahl =document.getElementById ("warenkorbfeld").length ;
for (var i =0; i<=anzahl; i++)
{
if (document.getElementById ("warenkorbfeld").options[i].selected==true)
{
if (document.getElementById ("warenkorbfeld").options[i].id == "Margherita" )
gesamtbetrag = gesamtbetrag - 4;
if (document.getElementById ("warenkorbfeld").options[i].id=="Salami" )
gesamtbetrag = gesamtbetrag - 4.50;
if (document.getElementById ("warenkorbfeld").options[i].id=="Hawaii" )
gesamtbetrag = gesamtbetrag - 5.50;
document.getElementById ("warenkorbfeld").options[i]=null;
i--;// auf der gleichen stelle bleiben, da dass nächste feld nachrückt
}
}
document.getElementById('gesamtbetrag').innerHTML=gesamtbetrag ;
}
在我添加价值之前
function hinzu (pizza)
{
NeuerEintrag = new Option(pizza, pizza, false, false);
document.getElementById("warenkorbfeld").options[document.getElementById("warenkorbfeld").length] = NeuerEintrag ;
if (pizza=="Margherita")
{
gesamtbetrag = gesamtbetrag + 4;
}
if (pizza=="Salami")
{
gesamtbetrag = gesamtbetrag + 4.50;
}
if (pizza=="Hawaii")
{
gesamtbetrag = gesamtbetrag + 5.50;
}
document.getElementById('gesamtbetrag').innerHTML=gesamtbetrag ;
}
现在,在删除功能中不减去价格。 尽管如此,所有的作品。
这个词有什么问题?
if (document.getElementById ("warenkorbfeld").options[i].id == "Margherita" )
gesamtbetrag = gesamtbetrag - 4;
提前致谢
gesamtbetrag
变量来自哪里? 您正在从中减去,但看起来直到之后才被定义。 我认为您可能需要添加
var gesamtbetrag = document.getElementById('gesamtbetrag').innerHTML
在功能的顶部。
另外,请考虑以下针对代码的优化:
for
循环来遍历选项( for (var i =0; i<=anzahl; i++)
,可以改为使用select元素的selectedIndex
属性。 select.remove()
而不是select.options[i] = null
。 -=
为变量减去一个数字。 getElementById
查找。 selectedIndex
与已知索引进行比较(例如sel.selectedIndex == 0
),而不是将selectedOption.id == "Some string"
进行比较。 我在下面没有这样做,因为我不知道您的索引 function delete_auswahl()
{
var gesamtbetrag = document.getElementById('gesamtbetrag').innerHTML;
var selEl = document.getElementById("warenkorbfeld");
var opt = selEl.options[selEl.selectedIndex];
if (opt.id == "Margherita")
gesamtbetrag -= 4;
else if (opt.id=="Salami")
gesamtbetrag -= 4.50;
else if (opt.id=="Hawaii")
gesamtbetrag -= 5.50;
selEl.remove(selEl.selectedIndex);
}
我有问题,那是
如果(document.getElementById(“ warenkorbfeld”)。options [i] .value ==“ Salami”)
选项。 值
不
options.id
现在它的工作原理:-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.