我创建了一个函数updatePrice,我已将其与#34; click"我的HTML表单中的复选框和单选按钮上的事件。每个复选框和收音机基本上代表一个项目,其价格作为这些cat_id
元素的值属性。当我选中或取消选中任何一个框时,该函数会触发,循环遍历表单中的所有元素,并将所有已检查项目的总价格更新为我在表单下方的div元素,并带有id标记" priceOutput&# 34。
以下代码完美无缺,打印出来:此商品的价格为$(商品价格)。
<input>
但是,如果我切换最后一行,则根本不打印该行:
function updatePrice() {
var price = 0
for (i=0;i<=form.length;i++) {
var element = form[i]
if(element.checked) {
price+=parseInt(element.value)
}
document.getElementById("priceOutput").innerHTML = "The price of this item is $" + price + "."
}
}
为什么我必须在for的{}中写一行才能工作。价格变量的范围是否扩展到整个updatePrice函数?
我仍然很喜欢编程,如果这是一个基本问题,请原谅我。
答案 0 :(得分:2)
在我看来,它不会因为您导致错误而打印。由于数组索引从0开始,因此for循环不应使用<=
,而应使用<
:
for (i=0;i<form.length;i++) {
...
}
之所以没有打印的原因是因为在最后一个循环中,函数错误和设置内部HTML永远不会被执行。
答案 1 :(得分:0)
好像您的代码存在错误,如何将var
添加到for循环并从i<=form.length
for(var
i = 0; i&lt; form.length; i ++)