2011-08-17 113 views
3

我想要一個複選框來檢查/取消選中所有其他複選框。選中/取消選中所有複選框

我使用這個代碼:

$("#checkall").toggle( 
    function() { 
     $(".kselItems").attr('checked', 'checked'); 
    }, 
    function() { 
     $(".kselItems").removeAttr("checked"); 
}); 

這工作正常,但由於某些原因,id爲checkall(一,應該讓每一件事情的工作)的複選框,從來沒有一個長期檢查。

這怎麼解決?

+0

'#checkall'複選框是否也有'kselItems'類? – Spycho

+0

'.attr('checked',false)' – Teneff

+0

請粘貼隨附的HTML – evilcelery

回答

2

嘗試過濾掉選擇器中的複選框。

 $("#checkall").toggle( 
      function() { 
       $(".kselItems:not(#checkall)").attr('checked', 'checked'); 
      }, 
      function() { 
       $(".kselItems:not(#checkall)").removeAttr("checked"); 
     }); 
+0

沒有工作,像以前一樣... – Ovi

0

編輯:雖然我所著,xeno06回答太:)

當你點擊 「checkall」,它1)的值設置爲檢查,然後2 )調用切換功能,它會找到「checkall」,並將其返回。

最好的辦法是不要把 「.kselItems」 類 「checkAll」,或者,如果 「checkall」 裏面 「.ksleItems」 使用

$(".kselItems not(#checkall)").(...) 

$(".kselItems").not("#checkall").(...) 

爲清楚起見我會用納文的解決方案

$("#checkall").click(function() { 
    $(".kselItems :checkbox").not("#checkall").attr('checked', this.checked); 
}); 
0

你可以用這個

01嘗試
$("#checkall").click(function() { 
    $(".kselItems").prop('checked', this.checked); 
}); 
相關問題