我在订单页面上有一个表单,当用户更改数量时,我需要更新行总计。我有总计工作,但无法得到总计,因为我无法弄清楚如何定位正确的元素。
表单由cms生成,因此最终包含在许多无关的div等中......这是每个行项目的简化版本:
<input type="text" class="text cart_qty" id="Form_OrderForm_Product-1065-qty" name="Product[1065][qty]" value="1" />
<input type="text" class="text prod_id" id="Form_OrderForm_prod_1065" name="prod_1065" value="1065" />
<input class="hidden" type="hidden" id="Form_OrderForm_hidden_1065" name="hidden_1065" value="1.45" />
<span id='Product_1065_Line' class='cart_price_line'>1.45</span>
所以基本上,每当更改.cart_qty输入字段时,都需要更新.cart_price_line。
我的总数是这样的:
$('.cart_qty').keyup(function(){
var $thetotal=0;
$('input.cart_qty').each(function(index) {
$theqty=$(this).val();
$thenextindex=$("input").index(this) + 2;
$theprice=$("input:eq("+$thenextindex+")").val();
$thelinetotal=$theqty * $theprice;
$thetotal=$thetotal + $thelinetotal;
});
$("#total_price_curr").html($thetotal).formatCurrency();
$("#Form_OrderForm_totalHidden").val($thetotal);
});
它正在计算订单项,但我无法弄清楚如何在$(“input.cart_qty”)。(...)函数中定位span.cart_price_line。
任何帮助将不胜感激
答案 0 :(得分:0)
那不是this.children("span.cart_price_line")
答案 1 :(得分:0)
我不确定我得到了你要求的东西,但也许这会有所帮助。将其添加到.each()
函数
var product_id = $(this).attr("id").split("-")[1];
$("#Product_" + product_id + "_Line").html($thelinetotal);
添加了该行的演示:http://jsfiddle.net/7NCdQ/
另外,我重写了它(新的jQuery选择器以获得价格并重命名变量)
$('input.cart_qty').keyup(function(){
var total = 0;
$('input.cart_qty').each(function(index) {
var product_id = $(this).attr("id").split("-")[1];
var quantity = $(this).val();
var price = $("#Form_OrderForm_hidden_" + product_id).val();
var line_total = price * quantity;
total += line_total;
$("#Product_" + product_id + "_Line").html(line_total);
});
$("#total_price_curr").html(total);
$("#Form_OrderForm_totalHidden").val(total);
});