您可能希望將一些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