【发布时间】:2013-12-27 01:48:09
【问题描述】:
我有几个复选框,它们根据选中的复选框过滤产品。单击复选框时过滤器起作用,并将产品 ID 添加到数组中。正如你所看到的,两个过滤器都有一些相同的 id,所以如果他们点击了多个输入框,我想确保这些 id 只被推送到数组中一次。例如。如果他们选择了 input.white 并选择了 input.greymelange,那么他们点击了 filter-btn 我只希望重复的 id 被推送一次。有什么办法可以做到吗?
JQUERY
var productIds = [""];
$(document).on('click', 'a.filter-btn', function(e){
$( ".listingTemplate" ).html("");
if ($('input.white').is(':checked')) {
productIds.push("4021401143741", "4021402266227");
}
if ($('input.greymelange').is(':checked')) {
productIds.push("4021401143741", "4021402266227","4021402266418", "4021401143796");
}
});
HTML
<input type="checkbox" id="white" class="white" value="white" />
<input type="checkbox" id="greymelange" class="greymelange" value="greymelange" />
<a href="#" class="filter-btn">filter</a>
【问题讨论】:
-
...你到底想用这段代码做什么?我认为重新设计您的代码以循环遍历产品而不是过滤器会简化您的代码并且对数据库更加友好。