【问题标题】:jQuery - How to select all checkboxes EXCEPT a specific one?jQuery - 如何选择除特定复选框之外的所有复选框?
【发布时间】:2021-09-09 23:19:35
【问题描述】:

我有一个看起来像这样的 jQuery 选择器...

$("input:checkbox").click(function(event) {
  // DO STUFF HERE
}

在我被要求添加另一个与原始复选框无关的复选框之前,一切都运行良好。如何为除一个以外的所有复选框创建选择器?谢谢。

【问题讨论】:

    标签: jquery checkbox


    【解决方案1】:
    $('input:checkbox:not("#thatCheckboxId")').click(function(event) {
      // DO STUFF HERE
    }
    

    只需给有问题的复选框一个唯一的id=""

    【讨论】:

    【解决方案2】:

    您可以执行以下操作:

    $("input:checkbox").not(":eq(0)")
    

    作为您想要的复选框的索引“0”(在这种情况下是 DOM 上的第一个)

    【讨论】:

      【解决方案3】:

      嗯..我们需要了解更多关于 HTML 的具体答案,但我可以想到两种方法。

      1) 如果您知道不想要的名称,请使用not 删除该名称

      $("input:checkbox").not('#the_new_checkbox_id').click(function(event) {
        // DO STUFF HERE
      }
      

      2) 使用正确输入的共同点来选择它们。

      $("input:checkbox[name=whatItIsNamed]").click(function(event) {
        // DO STUFF HERE
      }
      

      【讨论】:

        【解决方案4】:

        如果所有复选框都在另一个元素内,您可以选择该元素内的所有复选框。

        这是一个带有一个父元素的示例。

        <div class="test"><input type="checkbox"><input type="checkbox"></div>
        

        下面的 jQuery 也适用于多个 div:

        <div class="test"><input type="checkbox"><input type="checkbox"></div>
        <div class="test"><input type="checkbox"><input type="checkbox"></div>
        

        jQuery:

        $('.test input:checkbox')
        

        只选择任何具有“test”类的元素中的复选框。

        -Sunjay03

        【讨论】:

        • 你为什么要在你的答案上签名?
        • ...好问题。习惯?我曾经在论坛上一直这样做……所以它就是从那发展而来的。 =) 你为什么问旧约问题? :P
        • 因为你在这里(以及大多数论坛上)都被归咎于它是愚蠢的
        • 哈哈哈只是一种习惯。不会从答案中添加或删除任何内容。
        【解决方案5】:

        我使用了这个 - 不想选中以“订阅”命名的复选框,所以我使用了“$(':checkbox:not(checkbox[name=nameofyourcheckboxyoudontwantto]').each(function(){”

           $('#checked_all').click(function (event) {
            var checkbox = $(".compare_checkbox").is(":checked");
            if (checkbox) {
                // Iterate each checkbox
                $(':checkbox:not(:checkbox[name=subscription])').each(function () {
        
                    this.checked = false;
                });
            } else {
                $(':checkbox:not(:checkbox[name=subscription])').each(function () {
                    this.checked = true;
                });
            }  });
        

        enter image description here

        【讨论】: