2013-02-21 55 views
1

我想從多個遊樂項目中獲取總數和平均值。 現在我陷入了這一整天,首先我試着用span來圍繞它,但我想也許用一個數組更好,希望有人能夠幫助我找到缺失的部分。jQuery 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)); 

    }); 
}); 
+0

窩,我才意識到事情的「」是對每一個值的分隔符我還以爲是小數點分隔符(在法國,我們使用一個逗號不是一段時間) – 2013-02-21 14:26:34

回答

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

+0

非常感謝你,我使用表達式引擎(這是PHP),我發現了一些數學的附加功能,但這並不適用於輸出我有,所以我必須與隱藏的創意跨度... – Eddyfever 2013-02-21 14:44:43

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)); 
    }); 
});