带有多个选择的jQuery复选框选择

我的宝藏

当我选择2个或更多复选框时,我的jQuery复选框选择出现了一些问题。我对前端编程还是很陌生,所以请多多包涵。

在一个复选框上进行选择/取消选择的效果很好,但是问题出在选择多个选择时:

1)当我选择第一个复选框和另一个第二个复选框时,它将给出除第二个选择之外的所有选择。

2)当我取消选择第二个复选框,同时第一个复选框仍处于选中状态时,它为我提供了所有选择。

看来我必须在包装盒上选择两次才能正确注册并给我正确的过滤选择。

代码在这里:JSFiddle

的HTML

<div class="tags">
<label>
    <input type="checkbox" rel="accounting" />Accounting</label>
<label>
    <input type="checkbox" rel="courier" />Courier</label>
<label>
    <input type="checkbox" rel="project-management" />Project Management</label>
<label>
    <input type="checkbox" rel="video-games" />Video Games</label>
</div>
<ul class="results">
<li class="accounting" style="list-style-type:none"><a href="http://cnn.com" style="text-decoration: none">Accounting</a></li>
<li class="courier" style="list-style-type:none"><a href="http://cnn.com" style="text-decoration: none">Courier</a></li>
<li class="project-management" style="list-style-type:none"><a href="http://cnn.com" style="text-decoration: none">Project Management</a></li>
<li class="video-games" style="list-style-type:none"><a href="http://cnn.com" style="text-decoration: none">Video Games</a></li>
</ul>

jQuery的

$(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();
    }
});
});
j08691

这似乎可以满足您的需求:

$('div.tags').find('input:checkbox').on('click', function () {
    var vals = $('input:checkbox:checked').map(function () {
        return $(this).attr('rel');
    }).get();
    $('li').hide().filter(function () {
        return ($.inArray($(this).attr('class'), vals) > -1)
    }).show()
    if ($('input:checkbox:checked').length == 0) $('li').show()
});

jsFiddle示例

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Jquery限制带有父HTML选择器的复选框选择

来自分类Dev

jQuery - 多个复选框选择以过滤结果

来自分类Dev

jQuery复选框选择所有子级

来自分类Dev

jQuery复选框选择迭代

来自分类Dev

jQuery复选框选择判断

来自分类Dev

产品的多个复选框选择(过滤器)

来自分类Dev

获取多个复选框选择并用逗号分隔

来自分类Dev

反应本机元素复选框选择多个项目

来自分类Dev

使用多个下拉复选框选择附近的地点

来自分类Dev

angularjs中列表的多个复选框选择

来自分类Dev

jQuery DataTable选择带有复选框的行

来自分类Dev

jQuery默认复选框选择器

来自分类Dev

jQuery限制复选框选择不起作用

来自分类Dev

jQuery默认复选框选择器

来自分类Dev

jQuery ui multiselect复选框选择

来自分类Dev

复选框选择所有删除问题

来自分类Dev

父子复选框选择

来自分类Dev

问题保持复选框选择

来自分类Dev

计算复选框选择的总值

来自分类Dev

复选框选择不同的月份

来自分类Dev

父子复选框选择

来自分类Dev

jQuery和jqxGrid-如何通过复选框选择jqxGrid中的所有行

来自分类Dev

jQuery复选框选择所有不适用于Chrome

来自分类Dev

jQuery根据复选框选择启用/禁用复选框

来自分类Dev

复选框选择和取消选择

来自分类Dev

如何筛选具有多个条件的表行。即,在复选框选择上显示相关行。每个复选框代表列和行值

来自分类Dev

jQuery选择复选框

来自分类Dev

jQuery复选框选择总和在一个选择

来自分类Dev

选择所有带有角度JS的复选框