首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试创建用于比较元素的复选框

尝试创建用于比较元素的复选框
EN

Stack Overflow用户
提问于 2015-09-14 23:37:02
回答 2查看 72关注 0票数 1

到目前为止,当复选框被选中时,我设法显示/隐藏按钮,但它选中了所有复选框,这是我不想要的。

我的目标是在不同时勾选所有复选框的情况下选中不同的复选框。

编辑:也可以统计检查了多少个元素。

http://jsfiddle.net/bLd0gaxy/1/

代码语言:javascript
复制
<input type="checkbox" class="compare" name="compare">
<label for="compare" class="compare-label ml-10"> Compare</label>
<!-- <div class="compare-btn"></div> -->
<button class="compare-btn ml-10" style="display: none;">Compare</button>

<input type="checkbox" class="compare" name="compare">
<label for="compare" class="compare-label ml-10"> Compare 2</label>
<!-- <div class="compare-btn"></div> -->
<button class="compare-btn ml-10" style="display: none;">Compare</button>

        $('.compare').click(function() {
        if($('.compare').is(':checked')){
            $('.compare-label').hide();
            $('.compare-btn').show();            
        } else{
            $('.compare-label').show();
            $('.compare-btn').hide();
        }
    });
EN

回答 2

Stack Overflow用户

发布于 2015-09-14 23:44:54

您必须使用.prop("checked")来获取选中状态(http://api.jquery.com/prop/)。以下是您的工作示例:http://jsfiddle.net/infous/bLd0gaxy/3/

票数 2
EN

Stack Overflow用户

发布于 2015-09-14 23:41:01

您需要使用this来处理最近的元素:

代码语言:javascript
复制
$('.compare').change(function() {
    if (this.checked) {
        $(this).next("label").hide();
        $(this).nextUntil("button").show();
    } else {
        $(this).next("label").show();
        $(this).nextUntil("button").hide();
    }

    var totalChecked = $(".compare:checked").length;
});

另外,使用checkbox的change事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32568696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档