我的jquery函数有点问题。我正在尝试计算给定价格的小计,同时输入数量的数字。
这是我的html代码段:
<!-- Price -->
<td width="10%"><div class="price" value="0"></div></td>
<!-- Quantity -->
<td width="9%"><input class="quantity" type="text" value="0" size="1" onchange="updateTotal(this)"/></td>
<!-- Subtotal -->
<td width="5%"><div class="subtotal" value="0"></div></td>
我的jQuery功能:
function updateTotal(qty){
//Calculate Subtotal for each item
var quantity = $(qty).val();
var price = $('.price').html();
var subtotal = parseFloat(price) * parseInt(quantity);
$('.subtotal').text(subtotal);
//Calculate Grand Total
var sum = 0;
$('.subtotal').each(function(){
sum += parseFloat($(this).text());
});
$('#grandTotal').html(sum);
}
我的结果:
!(http://i45.tinypic.com/16a7exy.png)
!(http://i48.tinypic.com/5vu9uf.png)
我不太确定发生了什么事,我试图得到我正在使用的那一行,但我失败了。任何帮助将非常感激。
答案 0 :(得分:1)
$( '小计')文本(小计);其中有一个隐含的.each。这会导致您覆盖每个.subtotal行。用以下代码替换该行:
$('.subtotal').each(function(){
this.text(subtotal);
});
答案 1 :(得分:0)
使用类似的东西
$("#textbox").focusout(function () {
updateTotal(value);
});
使用Jquery并从文本字段中获取值,当焦点出来时,只调用一次函数。 Onchange导致了这个问题。
答案 2 :(得分:0)
.html
,请参阅以下内容:<{3>}
其他明智地使用.prop
api或.attr
api获取值属性:http://jsfiddle.net/UpGWP/
希望它有助于满足需求!
此外,我已从div href
:)
<强>码强>
function updateTotal(qty) {
//Calculate Subtotal for each item
var quantity = $(qty).val();
var price = $('.price').attr('value');
alert(price);
var subtotal = parseFloat(price) * parseInt(quantity);
$('.subtotal').text(subtotal);
//Calculate Grand Total
var sum = 0;
$('.subtotal').each(function() {
sum += parseFloat($(this).text());
});
$('#grandTotal').html(sum);
}