jQuery перечисляет динамическую таблицу - PullRequest
0 голосов
/ 24 февраля 2010

У меня есть HTML-форма, которая имитирует форму ввода счета.

Это способ загрузки элементов счетов (пользователи выбирают их из списка автозаполнения с помощью jQuery):

    $(document).ready(function() {
        $("#Products").focus().autocomplete('<%=Url.Action("GetProducts", "Product") %>', {
            dataType: 'json',
            parse: function(data) {
                var rows = new Array();
                for (var i = 0; i < data.length; i++) {
                    rows[i] = { data: data[i], value: data[i].product_name1, result: data[i].product_name1 };
                }
                return rows;
            },

            formatItem: function(row, i, n) {
                return row.product_PrettyId + ' - ' + row.product_name1 + ' (' + row.product_price + ' €) ';
            },
            width: 900,
            minChars: 0,
            max: 0,
            mustMatch: true
        });

        $("#Products").result(function(event, data, formatted) {
            if (data) {
                $(this).parent().next().find("input").val(data["product_id"]);
                $("#InvoiceItems > tbody").append(
                    "<tr>" +
                    "<td>num</td>" +
                    "<td>" + data["product_PrettyId"] + "</td>" +
                    "<td>" + data["product_name1"] + "</td>" +
                    "<td>" + data["product_price"] + "</td>" +
                    "<td></td>" +
                    "<td>1</td>" +
                    "<td>" + data["product_price"] + "</td>" +
                    "</tr>");
            }
        });

После добавления каждого элемента счета-фактуры мне нужно перечислить таблицу, которую я строю, - подсчитать количество элементов, умножить цену на количество и сложить все элементы.

Как я могу это сделать?

1 Ответ

2 голосов
/ 24 февраля 2010

Возможно, вы захотите добавить некоторые классы к определенным тд для таких вещей, как количество, цена и общее количество предметов, каждый раз, когда вы добавляете новый, вы можете обновить счетчик и сохранить его в скрытом поле и прочитать это значение

РЕДАКТИРОВАТЬ: обернуть. Каждый цикл в функции

function functionName() {
var itemCounter = 0;
$('#InvoiceItems tr').each(function() {
    itemCounter += 1;
    //this loops through each row in the table
    var quantity = parseFloat($('td.quantity', this).text());
    quantity = isNaN(quantity) ? 1 : quantity;//if a number isn't parsed, replace it with 1
    var price = parseFloat($('td.price', this).text());
    price = isNaN(price) ? 0 : price;
    var total = quantity * price;
    //do something with the total
});
}

Вы можете вызывать эту функцию всякий раз, когда добавляется новый элемент, поэтому итоги всегда будут актуальными

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...