【发布时间】:2016-10-12 11:30:34
【问题描述】:
我需要使用 jquery 过滤内容,但如果没有选中复选框,我需要显示所有内容。
这是我的代码:
<div class="tags">
<label>
<input type="checkbox" rel="arts" />
Arts
</label>
<label>
<input type="checkbox" rel="computers" />
Computers
</label>
<label>
<input type="checkbox" rel="health" />
Health
</label>
<label>
<input type="checkbox" rel="video-games" />
Video Games
</label>
</div>
<ul class="results">
<li class="arts computers">Result 1</li>
<li class="video-games">Result 2</li>
<li class="computers health video-games">Result 3</li>
<li class="arts video-games">Result 4</li>
<li class="arts video-games">Result 6</li>
</ul>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script>
$(document).ready(function () {
$('.results > li').show();
$('div.tags').find('input:checkbox').on('click', function () {
$('.results > li').hide();
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).show();
});
});
});
</script>
onload 显示所有内容。但是如果我取消选择所有复选框,所有<li> 的内容都会隐藏。相反,如果我在取消选择后取消选择所有复选框,我需要显示所有内容。
【问题讨论】: