На этом шаге мы рассмотрим определение сумм в зависимости от заданного количества.
Теперь можно перейти к вычислению сумм в правом столбце. Общая стоимость в каждой строке должна вычисляться как произведение количества приобретаемых предметов и цены одного предмета.
$('td.quantity input').change(function() { var totalQuantity = 0; $('#cart tbody tr').each(function() { var price = parseFloat($('td.price', this) .text().replace(' руб', '')); price = isNaN(price) ? 0 : price; var quantity = parseInt($('td.quantity input', this).val(), 10); quantity = isNaN(quantity) ? 0 : quantity; var cost = quantity * price; $('td.cost', this).text(cost+' руб'); totalQuantity += quantity; }); $('tr.shipping td.quantity').text(String(totalQuantity)); });
Мы извлекаем цену одного предмета из таблицы, используя тот же прием, который был необходим нам ранее для реализации сортировки таблицы по цене. Регулярное выражение сначала удаляет символ валюты, находящийся в конце значения, и затем передает полученную строку функции parseFloat(), которая интерпретирует значение как число с плавающей точкой. Поскольку в вычислениях участвует результат, нам необходимо убедиться, что число было найдено, в противном случае установить цену равной 0. В заключение мы умножаем цену на количество, а результат помещаем в столбец Всего, добавив в конец значения символы ' руб'. Теперь производится вычисление всех суммарных значений, как показано на рисунке 1.
Рис.1. Изменение количества предметов вызывает пересчет всех суммарных стоимостей
Полный текст этого примера можно взять здесь.На следующем шаге мы рассмотрим обработку дробной части.