Попробуйте:
$(function() {
$("#addAll").click(function() {
var add = 0;
$(".amt").each(function() {
add += parseInt($(this).val() || 0, 10);
});
$("#para").text("Sum of all textboxes is : " + add);
});
});
Использование parseInt
. Кроме того, вы должны использовать +=
, если вы пытаетесь суммировать значения.
Вот это работает: http://jsfiddle.net/S9H6A/
<ч />
Обновление: Если вы пытаетесь вычесть все значения в текстовых полях, то ваша проблема в том, что вы инициализируете итоговое значение равным 0. Вместо этого попробуйте что-то подобное (также добавлен код из @ Правин ответ, который использует || 0
по умолчанию пусто input
с 0):
$(function() {
$("#addAll").click(function() {
var total;
$(".amt").each(function() {
if (typeof total === 'undefined') {
total = parseInt($(this).val() || 0, 10);
}
else {
total -= parseInt($(this).val() || 0, 10);
}
});
$("#para").text("Sum of all textboxes is : " + total);
});
});
Обновленный пример: http://jsfiddle.net/S9H6A/4/