2012-11-13 21 views
0

在PHP頁面中,我有一個結果列表。 我想按日期獲取結果數量以顯示餅圖。按日期計算跨度id的數量

這是我有:

<span id="tweetdate_1_12-11-2012">...</span> 
<span id="tweetdate_2_12-11-2012">...</span> 
<span id="tweetdate_3_12-11-2012">...</span> 
<span id="tweetdate_4_12-11-2012">...</span> 
<span id="tweetdate_1_11-11-2012">...</span> 
<span id="tweetdate_2_11-11-2012">...</span> 
<span id="tweetdate_1_10-11-2012">...</span> 
<span id="tweetdate_2_10-11-2012">...</span> 

我想在javascript來獲得: 1.像這樣的日期:2012年10月11日,2012年11月11日,2012年12月11日 2 。按日期計算的結果數量:2,2,4

我已經恢復了日期,但沒有按照好的順序排列(先排在第一位),而不是這些日期的數量。

可能嗎?

感謝

回答

1

您可以使用下面的jQuery代碼,並會得到一個對象,具有日期爲重點。

$(function(){ 
var ret = {}; 
    $('span[id^="tweetdate"]').each(function(){ 
     var tmp_array = this.id.split('_'); 
     var date = tmp_array[tmp_array.length-1]; 
     if(ret[date]){ 
      ret[date] ++; 
     }else{ 
      ret[date] = 1; 
    } 
    }); 
    console.log(ret); 
}); 

結果似乎是按順序排列的。或者如果您不確定,可以在使用前對其進行分類。

+0

我已經完成了它只有PHP,但這個解決方案是非常好的:-)。 – superscral

0

你可以做,在這種方式下,

jQuery代碼

<script language="javascript" type="text/javascript" src="jquery-1.8.2.js"></script> 
<script language="javascript" type="text/javascript"> 
$(document).ready(function() { 
    count = 0; 
    $('span').each(function(){ 
    if($(this).attr('id').match(/12-11-2012/)) { 
      count++; 
    } 
    }); 
    $('#count').html(count); 
}); 
</script> 

HTML代碼

<span id="tweetdate_1_12-11-2012">...</span> 
<span id="tweetdate_2_12-11-2012">...</span> 
<span id="tweetdate_3_12-11-2012">...</span> 
<span id="tweetdate_4_12-11-2012">...</span> 
<span id="tweetdate_1_11-11-2012">...</span> 
<span id="tweetdate_2_11-11-2012">...</span> 
<span id="tweetdate_1_10-11-2012">...</span> 
<span id="tweetdate_2_10-11-2012">...</span> 
<div id="count"></div>