所以我一直在搜索和重新搜索这个并且似乎无处可去。
我的代码包含大量数据,当我点击某个项目时,该项目会形成一个价格新的列表。我试图让新列表中的价格形成一个总数,但我对jQuery不是很好,所以我只能显示第一个列表项目的价格,我不确定我如何让它循环遍历我的所有.textbox
以添加所有数字而不仅仅是第一个数字。
所以这就是我到目前为止:
$('.itemproduct').click(function () {
var product = $(this).find('.product').html();
var price = $(this).find('.price').html();
$("#list").append('<tr id="help">' + '<td>' + product + '</td>' + '<td class="move add">' + '<input type="text" class="textbox" value="' + price + '"/>' + '</td>' + '</tr>');
var num = parseFloat($(".textbox").val());
var new_num = $("#total").val(num.toFixed(2));
});
答案 0 :(得分:0)
您需要添加一个跟踪总计的变量,并迭代文本框以计算总计,然后在“#total”框中显示总计。就这样:
工作小提琴:http://jsfiddle.net/8d74n/4/
$('.itemproduct').click(function ()
{
var product = $(this).find('.product').html();
var price = $(this).find('.price').html();
var total = 0.00;
$("#list").append('<tr id="help">' + '<td>' + product + '</td>' + '<td class="move add">' + '<input type="text" class="textbox" value="' + price + '"/>' + '</td>' + '</tr>');
$( '.textbox' ).each( function( )
{
var itemPrice = parseFloat( $( this ).val( ) );
total += itemPrice;
});
total = total.toFixed( 2 );
$( '#total' ).val( total );
});
编辑-----------
只是跟小提琴鬼混,注意到我得到一个舍入错误,总数开始变成'6.58999999999999999996'这样的数字为了解释这个,我添加了'total = total.toFixed(2); 还更新了小提琴版
答案 1 :(得分:0)
或试试这个:
$('.itemproduct').click(function () {
var product = $(this).find('.product').html();
var price = $(this).find('.price').html();
$("#list").append('<tr id="help">' + '<td>' + product + '</td>' + '<td class="move add">' + '<input type="text" class="textbox" value="' + price + '"/>' + '</td>' + '</tr>');
var num = parseFloat($(".textbox").val());
createTotal();
});
function createTotal(){
var total = 0.0;
$('#list tr').each(function(key, val){
total += parseFloat($(val).find('input').val());
});
$("#total").val(total.toFixed(2));
}