按日期计算跨度ID的数量

时间:2012-11-13 07:44:39

标签: javascript jquery html

在PHP页面中,我有一个结果列表。 我希望按日期获得结果数量,以显示饼图。

这就是我所拥有的:

<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:  这样的日期:2012年11月11日,2012年11月11日,2012年11月12日  2.按日期分列的结果数:2,2,4

我已经恢复了日期,但没有按照良好的顺序(第一次),而不是这些日期的数量。

有可能吗?

由于

3 个答案:

答案 0 :(得分:1)

您可以使用以下jQuery代码,并获得一个以日期为关键字的Object。

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

结果似乎是有序的。或者,如果您不确定,可以在使用前对其进行排序。

答案 1 :(得分: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>

答案 2 :(得分:0)

更简洁:

var count = $('span[id*=12-11-2012]').length;
$('#count').html(count);

http://api.jquery.com/attribute-contains-selector/