jquery循环求和!
<tr>
<th>一月</th>
<th>二月</th>
<th>三月</th>
<th>一季度</th>
<th>四月</th>
<th>五月</th>
<th>六月</th>
<th>二季度</th>
……
</tr>
<tr>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td id="first"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td id="second"></td>
……
</tr>
在文本框中输入前三列的值之后,自动计算出前三列的和。如输入一月,二月,三月的值,自动计算出一季度的值
[解决办法]
前几天写的 可以改改:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>第一个简单的jQuery程序</title>
<link type="text/css" rel="stylesheet" href="js/zTreeStyle/zTreeStyle.css" />
<link type="text/css" rel="stylesheet" href="js/zTreeStyle/zTreeIcons.css" />
<script type="text/javascript" src="js/jquery-1.4.1.js"></script>
<script type="text/javascript" src="js/zTree/jquery.ztree-2.6.min.js"></script>
<script type="text/javascript" src="js/jquery.cookie.js"></script>
<script language="JavaScript" type="text/javascript">
$(function(){
$("#end td").each(function(key,val){
var s=0;
$(".su").each(function(k,v){
s+=parseInt($(v).children("td").eq(key).html());
});
$(this).html(s);
});
})
</script>
</head>
<body>
<table id="tbStu" >
<tr id="exe">
<th>dddd</th><th>sss</th><th>ffff</th><th>ddsss</th>
</tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr class="su"><td>1</td><td>2</td><td>4</td><td>1</td></tr>
<tr id="end"><td>333</td><td>4444</td><td>5555</td><td>66666</td></tr>
</table>
</body>
</body>
</html>
[解决办法]
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<table>
<tr>
<th>一月</th>
<th>二月</th>
<th>三月</th>
<th>一季度</th>
<th>四月</th>
<th>五月</th>
<th>六月</th>
<th>二季度</th>
</tr>
<tr>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td id="first"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td><input type="text" class="number" name="result"></td>
<td id="second"></td>
</tr></table>
<script>
function compute() {
var td = this.parentNode, tr = td.parentNode, rstTd, rx = /^\d+$/;
var cellIndex = td.cellIndex;
var groupIndex = Math.floor(cellIndex / 4) * 4; //获取季度开始的第一个单元格小标
var rst = 0;
$(tr.cells[groupIndex]).add(tr.cells[groupIndex + 1]).add(tr.cells[groupIndex + 2]).find('input').each(function () { rst += rx.test(this.value) ? parseInt(this.value, 10) : 0 });
tr.cells[groupIndex + 3].innerHTML=rst;
}
$('input').blur(compute);
</script>