您可能希望将一些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
。
UPDATE:如果你的结构都是这样的一个贴,他们之间的相互关系。将含有表上使用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);
});
再次更新:好了,你没有办法ID指派给你的表。没关系,我们仍然可以做到这一点。你将不得不使用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);
});
看起来近乎完美的问题是我有很多这样的结构,从而有一对夫妇在文档中此表的,所以我需要一种方法来做到这一点牢记这表包含元素其中更改 – Markus 2009-09-16 12:53:18
@Markus:请参阅我的更新以了解如何解决该问题。 – 2009-09-16 13:14:01
我的问题是,我写在一个局部视图这张桌子,我没有价值识别表,我不能添加一个简单的计数器太..:S – Markus 2009-09-16 13:37:47