<table id="tab" border="1">
<tr>
<td>One</td><td>123</td><td></td><td>32</td>
</tr>
<tr>
<td>Two</td><td>52</td><td></td><td>53</td>
</tr>
<tr>
<td>Three</td><td>234</td><td></td><td>56</td>
</tr>
</table>
$('#tab').click(function(){
sum();
})
function sum(){
//????
}
对于每个TR,第二和第四个TD的和列的最佳方法如何?并填入第三个TD?
答案 0 :(得分:4)
function sum(){
$("tr").each(function(){
var sum = parseFloat($(this).find("td:eq(1)").text()) +
parseFloat($(this).find("td:eq(3)").text());
$(this).find("td:eq(2)").text(sum);
})
}
在这里,有一个小提琴:http://jsfiddle.net/bYf8C/10/
答案 1 :(得分:2)
演示:http://jsfiddle.net/bYf8C/2/
$('#tab').click(function(){
sum();
})
function sum(){
$('#tab').find('tr').each(function(){
var first = $(this).children('td:eq(1)').text(),
second = $(this).children('td:eq(3)').text();
$(this).children('td:eq(2)').html(function(){
return parseInt(first) + parseInt(second);
});
});
}
正如Bojangles在评论中所建议的那样,children()
比find()
更快,:eq
比:nth-child
更快。我的编辑反映了这一点。
答案 2 :(得分:1)
这是:
$(function() {
$('#tab').on('click', function sum() {
$('tr', this).each(function(index, tr) {
var td1, td3;
td1 = parseInt(tr.children[1].textContent, 10);
td3 = parseInt(tr.children[3].textContent, 10);
tr.children[2].innerHTML = td1 + td3;
});
});
});
答案 3 :(得分:0)
function sum(){
$('#tab tr').each(function() {
var number1 = parseInt($(this).find("td").eq(1).html());
var number2 = parseInt($(this).find("td").eq(3).html());
$(this).find("td").eq(2).html(number1 + number2)
});
}