1

我想从许多游乐设施中获得总数和平均值。现在我整天都被这个困住了,首先我尝试了它周围的跨度,但我想也许有一个数组更好,希望有人能帮助我解决缺失的部分。

示例: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));  

  }); 
});
4

2 回答 2

3

*更新的答案。

这是一个小提琴。

这是代码:

$(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 或其他)。

于 2013-02-21T14:07:51.913 回答
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));  
  }); 
});
于 2013-02-21T14:18:18.927 回答