首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery循环求和!解决思路

2014-01-05 
jquery循环求和!trth一月/thth二月/thth三月/thth一季度/thth四月/thth五月/th

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>

热点排行