jquery函数中的小计(.click issues?)
此函数仅小计我在使用带有单选按钮的.hasVal类时上次单击的值。有什么想法吗 更新:这里是JSFIDLE链接: 基本上,我的HTML表单有一个带有值的字段集:jquery函数中的小计(.click issues?),jquery,Jquery,此函数仅小计我在使用带有单选按钮的.hasVal类时上次单击的值。有什么想法吗 更新:这里是JSFIDLE链接: 基本上,我的HTML表单有一个带有值的字段集: <fieldset id="breadOptions" class="hidden"> <legend>Select one</legend> <input type="radio" name="breadType" id="breadWhite" class="hasVal"
<fieldset id="breadOptions" class="hidden">
<legend>Select one</legend>
<input type="radio" name="breadType" id="breadWhite" class="hasVal" value=".5,260" /> White (260 calories)<br />
<input type="radio" name="breadType" id="breadWheat" class="hasVal" value=".5,360" /> Wheat (360 calories)<br />
</fieldset>
您可以将HTML5数据属性用于价格和卡路里,如下所示:
<input type="radio" ... data-cost=".5" data-cal="260" value="white" /> White (260 calories)
<input type="radio" ... data-cost=".5" data-cal="360" value="wheat" /> Wheat (360 calories)
以下是一个工作示例:
下面是一个无法使用HTML5数据属性的示例:如果我理解正确,您的投诉是当您单击单选按钮时,您只会显示一个反映您最近单击的值的小计。是这样吗?如果您发布您正在使用的
HTML代码的其余部分(我假设三明治的成分不仅仅是面包),这会有所帮助
现在,我已经将您的代码放到了一个JSFIDLE中:只做了一些更改
一旦你解释得更多一些,并提供了更多的HTML代码,我将很乐意进一步帮助你。你尝试过在值中不使用逗号吗?你尝试过+=
而不是=
在循环中使用=
。each()
吗?此时,每个迭代都会覆盖上一个值,而不是添加到它。此外,您还在内部函数和外部函数中定义了totalCal
。@JonathandeM。有两个值是用逗号分隔的。@nnnnnnnn用这种方式更改它会极大地影响数学。我不确定已经错误的数学怎么会被抛弃。你需要仔细观察你的循环——现在它一遍又一遍地分配相同的值,但是它应该做什么呢?(我的猜测是循环之前的三行应该在循环中,使用this.value.split(',')
而不是tar.value.split(',')
,然后我以前的+=
建议应用于已经在循环中的行。)我需要一点时间来测试这一点,但如果有效,我会将它标记出来!这是一个非常有用的建议!您是否已确定是否想要或能够使用HTML5数据结构?
<input type="radio" ... data-cost=".5" data-cal="260" value="white" /> White (260 calories)
<input type="radio" ... data-cost=".5" data-cal="360" value="wheat" /> Wheat (360 calories)
$('input:radio:checked').each(function() {
var input = $(this);
price += parseFloat(input.attr('data-cost'), 10);
cal += parseInt(input.attr('data-cal'), 10);
});