JQuery Check All链接只出现一次

时间:2013-07-25 04:07:38

标签: jquery checkbox toggle

我有以下代码。它似乎工作,因为它将检查所有框,然后取消选中它们。但是,在第一轮之后,它会停止检查和取消选中。它只会检查一次,并取消选中所有复选框一次。之后,我只有超链接切换显示和隐藏。

<script type="text/javascript">
      function selectAll(){
        $("input[type=checkbox]").each(function(){
          $(this).attr('checked', true);
        });
        $("#select_all").hide();
        $("#unselect_all").show();
      }

      function unselectAll(){
        $("input[type=checkbox]").each(function(){
          $(this).attr('checked', false);
        });
        $("#select_all").show();
        $("#unselect_all").hide();
      }
</script>

2 个答案:

答案 0 :(得分:1)

尝试使用prop()而不是attr()作为attr()与checked属性一起使用时会产生意外结果,您不需要在此使用each(),也可以指定一些{{} 1}}对复选框进行分组,而不是应用于页面上的所有复选框。您可以使用class selector选择具有相同class的复选框(元素)。

class

答案 1 :(得分:1)

使用.prop()代替.attr()

<script type="text/javascript">
      function selectAll(){
        $("input[type=checkbox]").each(function(){
          $(this).prop('checked', true);
        });
        $("#select_all").hide();
        $("#unselect_all").show();
      }

      function unselectAll(){
        $("input[type=checkbox]").each(function(){
          $(this).prop('checked', false);
        });
        $("#select_all").show();
        $("#unselect_all").hide();
      }
</script>