jQuery Sum数组

时间:2013-02-21 13:50:13

标签: jquery arrays sum

我想获得一些游乐设施的总数和平均值。 现在我整整都沉迷于此,首先我尝试了它的跨度,但我想可能有一个阵列更好,希望有人可以帮助我丢失的部分。

示例:http://jsbin.com/inapey/31/edit

<tbody id="rides">
    <tr>
        <td class="muted"><small>Mr.</small></td>
        <td>John</td>
        <td>Smith</td>
      <!-- Every ride of this person -->
        <td class="ride_km" style="display:none;">225,75</td>
      <!-- Sum & Average of this person -->
        <td class="ride_total_km"></td>
        <td class="ride_average_km"></td>
    </tr>
    <tr>
        <td class="muted"><small>Mrs.</small></td>
        <td>Jane</td>
        <td>Smith</td>
     <!-- Every ride of this person -->
      <td class="ride_km" style="display:none;">150,300</td>
      <!-- Sum & Average of this person -->
        <td class="ride_total_km"></td>
        <td class="ride_average_km"></td>
    </tr>
 </tbody>

jquery的

$(document).ready(function(){
  var total = 0;

  $('#rides tr').each(function() {
  var RidesKM = $(this).fin('.ride_km').html().split(",");  
  var arr = jQuery.makeArray(RidesKM); 
  alert(arr);

  var SumKM = ???;
  var AveKM = ???;  

  /* Total KM's */
    $(this).find('.ride_total_km').html(SumKM);
  /* Average KM's */
    $(this).find('.ride_average_km').html(AveKM.toFixed(0));  

  }); 
});

2 个答案:

答案 0 :(得分:3)

*更新了答案。

Here's a fiddle.

以下是代码:

$(document).ready(function () {
    $('#rides tr').each(function () {
        var that = $(this);
        var sum = 0;

        that.find('.ride_km').each(function () {
            var values = $(this).text().split(',');
            $.each(values,function() {
                sum += parseFloat(this);
             });
            /* Total KM's */
            that.find('.ride_total_km').html(sum.toFixed(2));
            /* Average KM's */
            that.find('.ride_average_km').html((sum / values.length).toFixed(2))
        });
    });
});

虽然您将值存储在隐藏的td中,但这很奇怪。我建议(如果你可以在javascript中进行所有计算,或者如果可能的话从服务器进行计算(如果你使用的是PHP或其他东西)。

答案 1 :(得分:0)

如果我理解正确,你想要每个人的总数。在这种情况下,您不需要total变量:

$(document).ready(function(){
  $('#rides tr').each(function() {
    var SumKM = 0;
    var RidesKM = $(this).find('.ride_km').html().split(",");

    for (i = 0; i < RidesKM.length; i++) {
      SumKM += parseInt(RidesKM[i]);
    }

    var AveKM = SumKM / RidesKM.length;  

    /* Total KM's */
    $(this).find('.ride_total_km').html(SumKM);
    /* Average KM's */
    $(this).find('.ride_average_km').html(AveKM.toFixed(0));  
  }); 
});