Если вам нужно запустить его сразу, для вашего случая есть пример кода:
$('table tbody tr').each(function(){
var sum = 0;
$('option:selected', this).attr('value', function(i,v){
sum += parseInt(v);
});
$('td:last', this).text(sum)
})
Обновление - код с событием щелчка в реальном времени и пересчет всех и всех сумм
См. Пример работы здесь: http://jsfiddle.net/6HAPV/2
HoursSum = {
table: $('table'),
row: $('table tbody tr'),
totalSum: $('table td:last'),
init: function(){
this.row.each(function(){
HoursSum.calculate(this)
});
HoursSum.rebuildEvent();
HoursSum.totalSumEvent();
},
rebuildEvent: function(){
$('select', this.row).bind('change',function(){
HoursSum.calculate($(this).parents('tr'));
})
},
calculate: function(obj){
var sum = 0;
$('option:selected', obj).attr('value', function(i,v){
sum += parseInt(v);
});
$('td:last', obj).text(sum);
HoursSum.table.trigger('sumChanged', sum);
},
totalSumEvent: function(){
HoursSum.table.bind('sumChanged', function(){
v = 0;
HoursSum.row.find('td:last').each(function(){
v += parseInt($(this).text())
})
HoursSum.totalSum.text(v)
});
}
}
HoursSum.init()