我想建立一个电子商务网站。当你点击/选中一个varietion时,它会在总价100的基础上增加20。但是当你取消检查varietion它不减去总价格。请帮帮我--我已经试了好几个月了,就是不行。
下面是我的代码:
<div id="total">500</div>
<input onclick="addTwenty()" id="checkbox1" type="checkbox">R20</input>
<script>
let total = document.getElementById("total");
let twenty = document.getElementById("checkbox1");
function addTwenty(){
total = 500;
twenty = 20;
if (twenty.checked = true){
document.getElementById("total").innerHTML = total + twenty;
} else{
document.getElementById("total").innerHTML = total - twenty;
}
}
</script>
我使用了If语句。当为true时,它在500上添加值20,即520。但如果不加控制它就不会减20。我想让它减去它现在未选中时所添加的值。
5条答案
按热度按时间rjzwgtxy1#
解决方案:
原因和解释如下。
勾选时加20,不勾选时返回500
原因
在
line 8
上,将20设置为复选框->let twenty = document.getElementById("checkbox1");
但是在
line 12
上,你设置了twenty = 20;
,所以现在变量twenty不包含元素,而是整数20。同样,在
line 13
上,在condition中,您使用了(twenty.checked = true)
...但是为了让您更清楚,=
用于赋值,==
用于检查/比较值,因此您需要在这里使用==
作为(twenty.checked == true)
方案说明
因此,我们将复选框设置为
twenty_check_box
而不是twenty
,并将其设置为常量。其次,我们检查为(twenty_check_box.checked == true)
。并将total变量更新为total += twenty
,表示total = total + twenty
并显示它,因此现在total为520然后如果未选中,它从
total
中减去20,所以现在total
再次是500。希望能解决问题…
eimct9ow2#
你应该给innerHTML赋值而不是变量。
piok6c0g3#
=
是赋值运算符,而不是相等性检查运算符。您应该使用===
而不是=
,或者更好,因为这是一个布尔值,只需完全省略它:2ul0zpep4#
将addTwenty函数中的20个变量名改为amount,这样就可以工作了。把你的相等比较从=改为===。
d8tt03nd5#
您需要使用
==
或===
运算符进行条件比较。您还可以在函数中重新分配twenty
。但是你也可以只使用
twenty.checked
,因为它本身要么为真,要么为假。