jQuery循环单击功能有错误的结果

时间:2018-11-02 09:27:09

标签: jquery

我想重构这些代码,但是我不知道如何实现?

原始代码:

$('#members_all').click(function(){
    if(this.checked){
        $(".members").each(function(){
            this.checked = true;
        });
    } else {
        $(".members").each(function(){
            this.checked = false;
        });
    }
});

    $('#games_all').click(function(){
      if(this.checked){
        $(".games").each(function(){
            this.checked = true;
        });
    } else {
        $(".games").each(function(){
            this.checked = false;
        });
    }
}); 

我的重构想法:

  var arr = ["members","games"];
  for(var i=0; i< arr.length;i++){
       $('#'+arr[i]+'_all').click(function(){
           $("."+arr[i]).each(function(){this.checked =($('#'+arr [i]+'_all').attr("checked") == "checked");});
       });

  }

但是在浏览器中测试,我得到了错误的结果。

0 个答案:

没有答案