0

在 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 : 1. 这样的日期:10-11-2012、11-11-2012、12-11-2012 2. 按日期划分的结果数:2、2、4

我已经恢复了日期,但顺序不正确(首先是旧的),而不是这些日期的数量。

可能吗?

谢谢

4

3 回答 3

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

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

于 2012-11-13T09:03:58.583 回答
0

更简洁一点:

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

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

于 2012-11-13T08:40:44.057 回答
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>
于 2012-11-13T08:29:59.387 回答