我正在尝试进行一些"累计总和"的计算,这是我的代码:
$('.quantity_input').live('change',function(){
var ValOne = parseFloat($(this).val());
var ValTwo = parseFloat($(".price").text())
var totalTotal = ((ValOne) * (ValTwo));
$('.cost_of_items').closest('.cost_of_items').text(totalTotal.toFixed(2));
calcTotal();
});
.quantity_input是一个输入框,.price是产品的价格,.cost_of_items是我想要更新的该项的总费用,即item1 = £5 x 3 quantity = £15 item1的总费用。 calcTotal()函数仅更新订单的总费用。问题在于保持所有计算都在表格的一行中,即在上面的代码中进行计算,但它没有保持在所属的行,而是更新了所有具有.class .cost_of_items等选定器的字段...
显示我的html的问题在于它是由jQuery的.appends()动态添加的,但以下是相关的jQuery:
$('#items').append('<tr class="tableRow"><td><a class="removeItem" href="#"><img src="/admin/images/delete.png"></img></a><td class="om_part_no">' + omPartNo + '</td><td>' + supPartNo + '</td><td>' + cat + '</td><td class="description">' + desc + '</td><td>' + manuf + '</td><td>' + list + '</td><td>' + disc + '</td><td><p class="add_edit">Add/Edit</p><input type="text" class="quantity_input" name="quantity_input" /></td><td class="price_each_nett price">' + priceEach + '</td><td class="cost_of_items"></td><td><p class="add_edit">Add/Edit</p><input type="text" class="project_ref_input" name="project_ref_input" /><p class="project_ref"></p></td></tr>');
编辑:
可行的解决方案:
$('.quantity_input').live('change',function(){
var ValOne = parseFloat($(this).val());
var ValTwo = parseFloat($(this).closest('tr').find('.price').text())
var totalTotal = ((ValOne) * (ValTwo));
$(this).closest('tr').find('.cost_of_items').text(totalTotal.toFixed(2));
calcTotal();
});
$('.cost_of_items').closest('.cost_of_items')
。你能同时展示一下你的HTML代码吗? - lonesomeday.append()
中缺少一个闭合的</td>
标签。 - user113716