JQuery расчет по значениям строк в таблице

0

это мой код на jsfiddle

Посещение

 $(document).ready(function(){

 //iterate through each textboxes and add keyup
 //handler to trigger sum event
 $("#targetPrice1").each(function() {

        $(this).keyup(function(){
            calculateSum();
        });
    });

});

function calculateSum() {

    var sum = 0;

    //iterate through each textboxes and add the values
    $("#targetPrice1").each(function() {
    var targetprice = $("#targetPrice1").val();
    var share = $("#share1").text();
    var cb = $("cb1").text();
        //add only if the value is number
        if(!isNaN(targetprice) && targetprice.length!=0) {
            sum = parseFloat(targetprice) * share - cb;

        }

    });
    //.toFixed() method will roundoff the final sum to 2 decimal places
    $("#rowSum1").html(sum.toFixed(2));
}

то, что я пытаюсь сделать, - это сделать расчет по отношению к значениям в каждой строке. (например, как это работает в строке 1)

но я хочу повторять каждую строку. (имя класса вниз по строкам просто увеличивается, например share1 → share2 от row1 до row2)

как сделать код, чтобы он работал?

Теги:

2 ответа

0

Вам не нужно делать сложный цикл, просто сделайте это -

$(document).ready(function () {
    $('.targetPrice').keyup(function() {
        var sum = 0;
        var targetPrice = $(this).val();
        var share = parseInt( $(this).closest('tr').find('.share').text() );
        var cb = parseInt( $(this).closest('tr').find('.cb').text() );
        if (!isNaN(targetPrice) && targetPrice.length != 0) {
          sum = parseFloat(targetPrice) * share - cb;
        }
        $(this).closest('tr').find(".rowSum").html(sum.toFixed(2));
    });
});

http://jsfiddle.net/C4Pn8/4/

Обратите внимание, что я дал каждой ячейке строки одни и те же классы, чтобы вам не приходилось беспокоиться об id - поэтому ваша разметка должна быть исправлена, чтобы сделать это таким образом.

0

Вот как это делается. Я прокомментировал это, чтобы вы поняли :)

http://jsfiddle.net/jabark/C4Pn8/3/

$(".targetPrice").each(function () { // Loop through all items will class of targetPrice
   $(this).keyup(function () {
      calculateSum($(this)); // Send the input through to the function
   });
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню