checkbox全选失效

先写一段全选的代码

 //全选、全不选
    $("#currentPageAllOrders").bind({
         click : function(){
             var allOrdersChecked = $(this).is(":checked")
             $("input[name='selectedId']").each(function () {
                 $(this).attr("checked",allOrdersChecked);
             })
          }
     });


页面效果如下


checkbox全选失效_第1张图片


我们F12看了一下页面代码,是没有选中状态,符合预期


checkbox全选失效_第2张图片


我们点击全选前面的选框,发现页面全选中了,这是我们想要的,这个时候我们再看看代码,多了一个checked=“checked",符合预期


checkbox全选失效_第3张图片


接下来点取消,发现页面中的 checked="checked"消失,符合预期


checkbox全选失效_第4张图片


这个时候,注意啦,当我们再次点击全选的时候,我们发现额,页面中没有选中效果,但是代码中却有 checked="checked"


checkbox全选失效_第5张图片


神奇啊,哭笑不得

后来经过研究发现,jquery1.6开始添加了一个新的方法prop,至于这个方法的详细情况,各位可以问度娘

解决方案


checkbox全选失效_第6张图片



ok  问题解决了(为了赶时髦,我用的是jquery1.11,罪过罪过)






你可能感兴趣的:(js)