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 に答える