【问题标题】:Select All Checkboxes By ID/Class按 ID/类选择所有复选框
【发布时间】:2010-11-05 04:37:06
【问题描述】:

我在 Javascript 方面真的很糟糕,我正在努力解决它。

我想要做的是选择所有复选框。但是,我发现的所有内容都试图通过名称来完成,我想通过 ID 或类来完成。按名称全选是不切实际的,不是吗?

【问题讨论】:

    标签: javascript


    【解决方案1】:

    使用 jQuery 试试这个:

    $(".className").prop("checked", true);
    $("#idName").prop("checked", true);
    

    【讨论】:

      【解决方案2】:

      如果您为所有复选框指定相同的名称 + 一个数字(即chkbox1chkbox2 等...)会怎样。然后在您的 javascript 中,您将创建一个 for 循环来检查您拥有的复选框的数量,然后执行 getElementByID("chkbox" + num)(其中 num 是您的循环变量)。

      【讨论】:

        【解决方案3】:

        Javascript

        按类别:

        var clist=document.getElementsByClassName("MyClass");
        for (var i = 0; i < clist.length; ++i) { clist[i].checked = "checked"; }
        

        按 ID:

        var clist=document.getElementById("MyID");
        for (var i = 0; i < clist.length; ++i) { clist[i].checked = "checked"; }
        

        另请参阅:Loop Over querySelectorAll Matches

        jQuery

        按类别:

        $('.myclass:input:checkbox').each(function() { this.checked = true; });
        

        按 ID:

        $('#myID:input:checkbox').each(function() { this.checked = true; });
        

        相关:How to reset all checkboxes using jQuery or pure JS?

        【讨论】:

          【解决方案4】:

          使用JQuery,您可以非常轻松地做到这一点!

          $(".ClassName").attr("checked", "true");
          

          或单个 ID

          $("#ID").attr("checked", "true");
          

          请参阅:Check All Checkboxes with JQuery

          【讨论】:

            【解决方案5】:

            伪代码:

            function checkAll(array_with_id_values)
            {
                for (var i = 0, ilen = array_with_id_values.length; i < ilen; i++)
                {
                    document.getElementById(array_with_id_values[i]).checked = true;
                }
            }
            

            调用它:

            checkAll(['my-unique-id', 'my-other-unique-id', 'my-third-unique-id']);
            

            你不应该使用这样冗长的变量名,并检查参数是一个数组,你得到的元素是一个复选框等。

            【讨论】:

              【解决方案6】:

              当有模式要匹配时,JQuery 非常棒。见Check All Checkboxes with JQuery

              【讨论】:

              • 感谢 Galwegian - 这就是让我在晚上 9 点之前坐在沙发上喝啤酒的答案。恕我直言,你无法击败一个有效的例子。
              【解决方案7】:
              var array = document.getElementsByTagName("input");
              
              
              for(var ii = 0; ii < array.length; ii++)
              {
              
                 if(array[ii].type == "checkbox")
                 {
                    if(array[ii].className == YOUR_CLASS_NAME)
                     {
                      array[ii].checked = true;
              
                     }
              
              
                 }
              }
              

              按 ID:

              var checkbox = document.getElementById(YOUR_ID);
              
              if(null != checkbox)
                  checkbox.checked = true;
              

              【讨论】:

                【解决方案8】:

                我总是在使用 javascript 时遇到困难。您可能想要调查 jQuery javascript 库。它极大地增强了我使用 javascript 解决问题的能力,以及创建更清晰简洁的代码来操作和访问 DOM。

                使用 jQuery,您应该能够轻松地通过 ID 选择您想要的所有复选框,然后循环通过它们设置要检查的值。

                【讨论】:

                • 我想避免它,因为不是每个人都想包含 jQuery,但是哦,好吧。到了大家都用它的时候了。现在一切正常:)
                • 没有理由使用 jQuery 来完成这么小的任务。
                • 如果 Ben 在使用 JavaScript 方面遇到了一般性问题,他最好检查一下。
                猜你喜欢
                • 1970-01-01
                • 2022-09-22
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2012-05-08
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多