【发布时间】:2013-09-16 21:28:07
【问题描述】:
我有一个很大的结果列表,我想用复选框过滤掉这些结果。因此,例如,当您单击 cat 3 时,您应该会看到所有具有 cat3 类的项目,如果您也单击 cat2,您应该会看到所有具有 cat2 和 cat3 的项目。在下面位于this fiddle 的代码中,我有 onchange 工作,所以如果你点击 cat3 它只显示 cat3 项目但是我无法让多个刻度在这里工作,如何实现?
<form id="refine-cat">
<span><input type="checkbox" value="1" name="filtercol">cat 1</span>
<span><input type="checkbox" value="2" name="filtercol">cat 2</span>
<span><input type="checkbox" value="3" name="filtercol">cat 3</span>
</form>
<form id="refine-col">
<span><input type="checkbox" value="1" name="filtercat">col 1</span>
<span><input type="checkbox" value="2" name="filtercat">col 2</span>
<span><input type="checkbox" value="3" name="filtercat">col 3</span>
<span><input type="checkbox" value="4" name="filtercat">col 4</span>
</form>
<ul>
<li class="item cat-3 col-1">number 3</li>
<li class="item cat-3 col-1">number 3</li>
<li class="item cat-3 col-1">number 3</li>
<li class="item cat-1 col-1">number 1</li>
</ul>
(列表中有更多项目)
JS
jQuery('#refine-cat input[type=checkbox]').bind('change', function (e) {
var jT = jQuery(this);
var val = jQuery(this).attr('value') || '';
if (jT.is(':checked')) {
jQuery('.item').hide();
jQuery('.cat-' + val).show();
} else {
jQuery('.item').show();
jQuery('.cat-' + val).hide();
}
});
jQuery('#refine-col input[type=checkbox]').bind('change', function (e) {
var jT = jQuery(this);
var val = jQuery(this).attr('value') || '';
if (jT.is(':checked')) {
jQuery('.item').hide();
jQuery('.col-' + val).show();
} else {
jQuery('.item').show();
jQuery('.col-' + val).hide();
}
});
【问题讨论】:
-
我会做这样的事情 -> jsfiddle.net/GkQM9/2
标签: javascript jquery html filter onchange