2015-02-24 46 views
1

我有这样的打击代码表:基于特定的列或索引使用jQuery如何与总表?

<table class="somting"> 
    <tr> 
    <th>Id</th> 
    <th>Item</th> 
    <th>Item Cost</th> 
    </tr> 
    <tr> 
    <td>1</td> 
    <td>Car</td> 
    <td>200</td> 
    </tr> 
    <tr> 
    <td>2</td> 
    <td>Book</td> 
    <td>500</td> 
    </tr> 
    <tr> 
    <td>3</td> 
    <td>Pen</td> 
    <td>100</td> 
    </tr> 
</table> 

现在我的问题是,我如何才能让子总项目的费用列 使用jQuery

我的意思是如何添加200 + 500 + 100

+0

哪里是你的JavaScript代码? – undefined 2015-02-24 07:14:32

+0

我不知道,这就是为什么我问 – 2015-02-24 07:15:55

回答

2

您可以使用:nth-child()

sum=0; 
$('.somting td:nth-child(3)').each(function(){ 
    sum += parseInt($(this).text()); 
}) 
//log sum 

Working Demo

+0

认为对总对这些类添加到使用jQuery的那些列但是当我运行它给我的NaN不知道为什么 – 2015-02-24 07:31:35

+0

@MehdiJalal:在拨弄工作正常。你可以在小提琴中重现问题吗? – 2015-02-24 07:39:21

+0

非常感谢,它非常好 – 2015-02-24 09:19:22

0

你添加一个类项目的代码行类似

<tr> 
    <td>1</td> 
    <td>Car</td> 
    <td class="price">200</td> 
    </tr> 

然后用

var total = 0; 
$(".price").each(function(){ 
    total += parseFloat($(this).html()); 
}); 

看到http://jsfiddle.net/8wqppuo6

+0

如何,因为我不能表是动态生成 – 2015-02-24 07:22:30

+0

或者是有什么办法基于索引或列位置 – 2015-02-24 07:23:46

1
<table class="somting"> 
    <tr> 
     <th>Id</th> 
     <th>Item</th> 
     <th>Item Cost</th> 
    </tr> 

    <tr> 
     <td>1</td> 
     <td>Car</td> 
     <td>200</td> 
    </tr> 
    <tr> 
     <td>2</td> 
     <td>Book</td> 
     <td>500</td> 
    </tr> 
    <tr> 
     <td>3</td> 
     <td>Pen</td> 
     <td>100</td> 
    </tr> 
</table> 

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> 

<script> 
    $(document).ready(function() { 
     var table = $("table.somting"); 
     var tds = table.find("tr td:nth-child(3)"); 

     var sum = 0; 

     $.each(tds, function(i, me){ 
      var val = parseFloat($(me).text()); 
      sum += val; 
     }); 

     var append = '<tr><td></td><td></td><td class="price"> '+sum+'</td></tr>'; 

     table.append(append); 

    }); 
</script> 
0

试试这个

tot = 0; 
$('table.somting tr').each(function(index, elem) { 
    p = $(this).find(":nth-child(3)").html(); 
    p = parseInt(p);   
    if (!isNaN(p)) {   
     tot = tot + p; 
    }    
}); 
console.log(tot); 
0

var sum =0; 
 
$('table tr:not(:first)').each(function() { 
 
    var lasttd= $(this).find(':last-child') 
 
    sum+=parseInt(lasttd.text()); 
 
}); 
 
alert(sum);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table class="somting"> 
 
    <tr> 
 
    <th>Id</th> 
 
    <th>Item</th> 
 
    <th>Item Cost</th> 
 
    </tr> 
 
    <tr> 
 
    <td>1</td> 
 
    <td>Car</td> 
 
    <td>200</td> 
 
    </tr> 
 
    <tr> 
 
    <td>2</td> 
 
    <td>Book</td> 
 
    <td>500</td> 
 
    </tr> 
 
    <tr> 
 
    <td>3</td> 
 
    <td>Pen</td> 
 
    <td>100</td> 
 
    </tr> 
 
</table>

0

使用此:

<script> 
    $(document).ready(function() { 
     var table = $("table.somting"); 
     var tds = table.find("tr td:nth-child(3)"); 
     var sum = 0; 
      $.each(tds, function(i, me){ 
       var val = parseFloat($(me).text()); 
       sum += val; 
      }); 
     var append = '<tr><td></td><td></td><td class="price"> '+sum+'</td></tr>'; 
     table.append(append); 

    }); 

</script> 
相关问题