使用jquery ajax筛选复选框
Checkbox filtering using jquery ajax
我正在尝试使用复选框进行过滤。但是我有一些问题。当我选择产品类别时,我得到了每个类别的项目,但当我取消所有选择时,没有任何产品。我想这样做,如果我取消选择类别项目,我想显示所有的产品,我怎么能做到这一点?帮帮我好吗?
<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>
</ul>
jquery,
$(document).ready(function () {
$('div.tags').find('input:checkbox').live('click', function () {
$('.results > li').hide();
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).show();
});
});
});
可以使用jsfiddle在线查看
http://jsfiddle.net/neon38/56MvQ/2/更新演示
使用 .length
获取选中复选框的长度。如果0显示所有li
if(!$('div.tags').find('input:checked').length){ //or .length == 0
$('.results > li').show();
}
试一下
$(document).ready(function () {
$('div.tags').find('input:checkbox').live('click', function () {
if ($(this).prop("checked")) {
$('.results > li').toggle('show');
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).toggle('show');
});
} else{
$('.results > li').show();
}
});
});
现场演示
also toggle('show')给它一个漂亮的效果
you Can just use Show() and hide() instead of toggle('show')
像这样放置条件 if($('div.tags').find('input:checked').length > 0)
$(document).ready(function () {
$('div.tags').find('input:checkbox').live('click', function () {
$('.results > li').hide();
if($('div.tags').find('input:checked').length > 0){
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).show();
});
}
else{
$('.results > li').show();
}
});
});
工作小提琴试试这个
$(document).ready(function () {
$('div.tags').find('input:checkbox').live('click', function () {
$('.results > li').hide();
if( $('div.tags').find('input:checked').length > 0)
{
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).show();
});
}else
{
$('.results > li').show();
}
});
});
你只需要检查是否有选项被选中
试试这个....
$(document).ready(function () {
$('div.tags').find('input:checkbox').live('click', function () {
var count=0;
$('.results > li').hide();
$('div.tags').find('input:checked').each(function () {
$('.results > li.' + $(this).attr('rel')).show();
count=1;
});
if(count == 0)
{
$('.results > li').show();
}
});
});
相关文章:
- AngularJS单选筛选不适用于Name、Description和Field4复选框值
- Angular JS Filter-通过3个复选框进行筛选
- 复选框筛选仅适用于刷新Angular2
- 在本地存储中选中复选框,但在加载时也要筛选列表
- 使用 JQuery 复选框筛选项目列表
- 使用复选框筛选结果
- 复选框筛选结果
- 使用复选框筛选PHP
- AngularJS orderby通过复选框进行筛选
- Rally自定义应用程序复选框筛选器不工作
- Jquery 按多个复选框筛选表行
- Web 解决方案中带有复选框和筛选器的组合框
- Jquery 复选框筛选 - 修复
- JQuery 复选框筛选器参数
- 如何在取消选中复选框时取消筛选表行
- 如何使用复选框筛选FullCalendar中的事件
- 带有li元素的复选框筛选器
- 如何使用复选框筛选多个列表项
- 使用Jquery和复选框筛选内容
- 根据复选框筛选结果