jQuery选择多个属性并选中/取消选中另一个复选框

 云天河马 发布于 2023-02-05 12:36

我如何识别不同行中的以下复选框,并单独选中/取消选中它们.







其中[number]是dinamically创建的.

示例:如果选中"F",则取消选中"PR".如果选中"PR",则取消选中"F".如果选中"DPH",则取消选中全部.

    $(":checkbox").change(function() {
    var current = this.value;
    if (current == "F") {
$(":checkbox[value=PR]").prop("checked", false);
    } 
        if (current == "PR") {
$(":checkbox[value=F]").prop("checked", false);

    } 
  if (current == "DPH") {
$(":checkbox[value=F]").prop("checked", false);
$(":checkbox[value=PR]").prop("checked", false);

    } 
});

此代码正常,但如果我取消选中第二行中的复选框,则第一行中的复选框也将取消选中:

在此输入图像描述

1 个回答
  • 这将按照您的要求执行:

    jsFiddle Working Example

    var $this,num,val;
    
    $('input[name^="eph-ds["]').click(function() {
        $this = $(this);
        num = $this.attr('name').split('[')[1].replace("]", "");
        val = $this.val();
        if (val=="F"){
            $('input:checkbox[name="eph-ds['+num+'][]"][value="PR"]').prop('checked',false);
        }else if (val=="PR"){
            $('input:checkbox[name="eph-ds['+num+'][]"][value="F"]').prop('checked',false);
        }else if (val=="DPH"){
            $('input:checkbox[name="eph-ds['+num+'][]"]').not($this).prop('checked',false);
        }
    });
    

    笔记:

      在顶部声明的变量因此无需在每次复选框单击时重新声明它们

      当检查DPH时,jsFiddle添加禁用F和PR(否则在检查DPH框后,用户可以检查PR或F).

      没有必要将您的复选框作为组查询(如前一个响应者所建议)

      如果难以理解,这条线可以分为三行:
      num = $this.attr('name').split('[')[1].replace("]", "");

    name = $this.attr('name'); //returns eph-ds[####][]
    temp = name.split('[')[1]; //returns ####]
    num = temp.replace("]", ""); //removes trailing ]

    2023-02-05 12:39 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有