【发布时间】:2018-06-03 17:25:05
【问题描述】:
我有以下html:
<input id="check_1" type="checkbox" name="check" value="option_1">
<label for="check_1">Option 1</label>
<input id="check_2" type="checkbox" name="check" value="option_2">
<label for="check_2">Option 2</label>
<input id="check_3" type="checkbox" name="check" value="option_3">
<label for="check_3">Option 3</label>
<input id="check_4" type="checkbox" name="check" value="option_4">
<label for="check_4">Option 4</label>
<div class="productsBox" data-tag="option_1 option_2 option_3">Product 1</div>
<div class="productsBox" data-tag="option_1 option_4">Product 2</div>
还有下面的javascript:
<script>
window.onload=function(){
$('input').on('change', function () {
var $checked = $('input:checked');
if ($checked.length) {
$('.productsBox').hide();
$checked.each(function () {
var val = $(this).val();
$('.productsBox').filter('[data-tag*="'+val+'"]').show();
});
} else {
$('.productsBox').show();
}
});
}
</script>
因此,如果选中选项 1 和选项 4,则会显示具有产品 1 和产品 2 的 div,因为它们都包含值 option_1 OR option_4。
但是,我希望看到,如果选中选项 1 和选项 4,则仅显示产品 2,因为它包含值 option_1 AND option_4。
这可能吗?任何帮助表示赞赏。
【问题讨论】:
标签: javascript jquery filter