读书人

jquery循环求和!解决思路

发布时间: 2014-01-05 18:22:55 作者: rapoo

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>

读书人网 >JavaScript

热点推荐