如果以前曾经问过这个问题,请道歉,但我似乎无法找到简明的答案,而且我在jQuery中是一个相当轻松的开发人员。
我有一堆对象,其中包含各种标签作为类,包括颜色和日期作为长格式数字:
<div class="red sysdate20110712"></div>
<div class="blue sysdate20110712"></div>
<div class="blue sysdate20120314"></div>
<div class="red sysdate20110712"></div>
<div class="yellow sysdate20100813"></div>
<div class="red sysdate20100813"></div>
<div class="yellow sysdate20121001"></div>
<div class="blue sysdate20121001"></div>
我想要做的是为用户构建功能,首先按颜色过滤,然后按日期范围过滤,例如:
日期开始日期:10.3.2010,日期结束:8.23.2013,颜色=蓝色和红色。
经过一些研究,我有一个日期范围作为修改from this post。我最终希望将最小和最大日期链接到滑块。
var minDate = 20120101;
var maxDate = 20130813;
var dateValue = [];
dateValue = $('.color-shape').filter(function(index){
var $this = $(this);
var matcharr = $this.attr('class').match(/sysdate([0-9]*)/);
if (matcharr) {
var date = parseInt(matcharr[1]);
return ((date >= minDate) && (date <= maxDate));
} else {
return false;
}
});
此外,我使用复选框通过组合过滤器方法过滤了颜色属性:
$checkboxes.change(function(){
var filters = [];
// get checked checkboxes values
$checkboxes.filter(':checked').each(function(){
filters.push( this.value );
});
filters = filters.join(', ');
$container.isotope({ filter: filters });
});
我的问题是,如何(如果有的话)我可以将这两个元素结合起来?由于需要将对象传递给过滤器,是否有任何方法可以组合对象,或者运行两部分过滤器?
道歉,如果答案就在我面前,因为我对jQuery有点新鲜。
更新:在朋友的帮助下,我完成了一些!基本上它涉及创建第三个var并将数组推送到一个新对象。
答案 0 :(得分:0)
为什么不使用所有者提供的组合过滤器? 它也有一个带有哈希历史的版本