我正在尝试使用jQuery将数据属性的每个实例分组到一个列表中,该列表来自页面中每个属性的出现次数.与在新闻栏目中对类别或标签进行分组相似.
例如,我想创建这样的东西:
>类别1(5)
>类别2(3)
>类别3(1)
从这个HTML:
<ul class="categories"> <li data-category="category-1">Category 1</li> <li data-category="category-1">Category 1</li> <li data-category="category-1">Category 1</li> <li data-category="category-1">Category 1</li> <li data-category="category-1">Category 1</li> <li data-category="category-2">Category 2</li> <li data-category="category-2">Category 2</li> <li data-category="category-2">Category 2</li> <li data-category="category-3">Category 3</li> </ul>
我怎样才能在jQuery中实现这一点?它甚至可能吗?
解决方法
有可能,请查看我创建的
jsFiddle.
var categories = {},category; $('.categories li[data-category]').each(function(i,el){ category = $(el).data('category'); if (categories.hasOwnProperty(category)) { categories[category] += 1; } else { categories[category] = 1; } }); // print results for(var key in categories){ console.log(key + ' (' + categories[key] + ')'); }