Возможно, вы захотите добавить некоторые атрибуты class
и / или id
к своим входам, чтобы этот код хорошо воспроизводился, если его перетянуть в более крупный HTML-контекст. Однако, чтобы ответить на вопрос как дано:
$("input[type=text]").blur(function() {
var sum = 0;
$("input[type=text]").each(function () { // For each of the two inputs
sum += parseInt($(this).val()) // ... add its value to sum
});
$("div.sum").text(sum); // Update the div
});
Если вы вводите числа с десятичной точкой, вы, вероятно, захотите использовать parseFloat
вместо parseInt
.
ОБНОВЛЕНИЕ: Если все ваши структуры похожи на опубликованные, самый простой способ связать их друг с другом - использовать атрибут id
в содержащей таблице и синтаксис селектора-потомка. Тогда код будет выглядеть так:
$("input[type=text]").blur(function() {
var parentId = $(this).parents('table').attr('id');
var sum = 0;
$(parentId +" input[type=text]").each(function () {
sum += parseInt($(this).val())
});
$(parentdId + " div.sum").text(sum);
});
ОБНОВЛЕНИЕ СНОВА: Хорошо, поэтому у вас нет возможности назначать идентификаторы для ваших таблиц. Это нормально, мы все еще можем это сделать. Вам придется использовать функции обхода jQuery parent()
и find()
вместо простых селекторов, вот и все.
$("input[type=text]").blur(function() {
var parent = $(this).parents('table');
var sum = 0;
parent.find("input[type=text]").each(function () {
sum += parseInt($(this).val())
});
parent.find("div.sum").text(sum);
});