【问题标题】:How can I checked checkbox, if I have an array of values?如果我有一组值,如何检查复选框?
【发布时间】:2012-02-16 20:46:59
【问题描述】:

我有以下输入!

<input type="checkbox" value="1" />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" />
<input type="checkbox" value="4" />
<input type="checkbox" value="5" />

使用 jQuery 后,我希望我的结果如下所示:

<input type="checkbox" value="1" checked />
<input type="checkbox" value="2" />
<input type="checkbox" value="3" checked  />
<input type="checkbox" value="4" />
<input type="checkbox" value="5" checked />

我使用以下代码,但它不起作用。

$(document).ready(function() { 
    var str = '1,3,5';
    var temp = new Array();
    temp = str.split(",");
    for (a in temp ) {
        //$('.check').valueOf().checked;
        $('.check').val(append(temp[a])).checked;
        //$('#c').append();
    }
});

提前致谢!

【问题讨论】:

    标签: jquery arrays checkbox checked


    【解决方案1】:

    说明

    您可以使用for(i=0;i!=temp.length;i++) 循环遍历您的数组,并使用属性选择器获取正确的复选框。

    查看我的示例和这个jsFiddle Demonstration

    样本

    $(document).ready(function() { 
        var str = '1,3,5';
        var temp = new Array();
        temp = str.split(",");
        for (i=0; i!=temp.length;i++) {
            var checkbox = $("input[type='checkbox'][value='"+temp[i]+"']");
            checkbox.attr("checked","checked");
        }
    });
    

    更多信息

    【讨论】:

    • +1 对此,我在我的 jsfiddle 中编写了几乎相同的解决方案。诅咒你,时间!
    【解决方案2】:

    我必须问,您希望它如何运作?对于初学者来说,你调用类名 check 的元素,而你的元素都没有,那么你只是有一个没有任何赋值或任何东西的语句......你还创建了一个刚刚被抛出的数组因为split 创建了一个新数组。此外,不是您的字符串拆分,而是像var temp = [1,3,5]; 这样的东西可以正常工作......最后你在数组上使用for...in,这很糟糕,因为数组在它们的键旁边有属性(例如length 和几种方法)...

    无论如何,你需要的更像是:

    (function() {
        var elms = document.querySelectorAll('input[type=checkbox]'), l = qsa.length, i;
        for( i=0; i<l; i++) {
            elms[i].checked = (elms[i].value % 2 == 1);
        }
    })();
    

    【讨论】:

    • 这取决于他只想检查奇数,不是吗?似乎有点冒险。
    【解决方案3】:

    试试这个:

    $(document).ready(function(){
        $("input[type='checkbox']").each(function(){
            if( $(this).index() % 2 == 0 ){
                $(this).attr('checked','checked');
            }
         });
    });
    

    你可以在这里玩小提琴 - http://jsfiddle.net/EuXQF/

    【讨论】:

      【解决方案4】:
      $(document).ready(function(){
          var array = "1,3,5,2";
          check_value(array);
      });
          function check_value(val){
              var array = val.split(",");
              for (i=0;i<array.length;i++){
                   //alert(array[i]);
      
                   $("input[type='checkbox']").each(function(){
                      if( $(this).val() == array[i]){
                          $(this).attr('checked','checked');
                      }
                   });
              }
          }
      

      【讨论】:

      • 有史以来最好的解决方案!希望对你有帮助!
      • 你的帖子有点奇怪,谢谢,如果你需要帮助。但它看起来像垃圾邮件。这个问题在 4 年前就已经公开了。已经有了一些好的答案。而且您不需要以这种方式评论您的答案。我鼓励你回答没有被接受的答案的热门问题。当您习惯了堆栈溢出时,请毫不犹豫地回答您认为需要的任何问题。
      猜你喜欢
      • 2017-05-26
      • 1970-01-01
      • 2017-06-19
      • 2018-12-01
      • 2015-03-07
      • 2013-11-09
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      相关资源
      最近更新 更多