2013-09-05 47 views
0

我有這樣的HTML代碼如何檢查/使用jQuery

<div class="friends_container"> 
    <div class="friend"> 
     <input type="checkbox" />  
     ... 
    </div> 
<div class="friend"> 
     <input type="checkbox" />  
     ... 
    </div> 
<div class="friend"> 
     <input type="checkbox" />  
     ... 
    </div> 
</div> 

與選擇所有取消選中所有checkboxs /取消選擇所有鏈接

<a id="selectall" href="#" >select all</a> 

我試圖使它的工作,但我失敗..任何幫助?

的jsfiddle Here

+4

有關於檢查/ SO上取消選中複選框_n_問題。這還不夠嗎? – undefined

回答

0

您可以使用jQuery .prop()爲此目的的方法。

$(function() { 
    var $checkboxes = $('.friends_container>.friend>input:checkbox'); 
    $('#selectall').on('click', function(e) { 
     e.preventDefault(); 
     $(this).toggleClass('selected'); 
     $checkboxes.prop('checked', function() { 
      return !this.checked; 
     }); 
    }); 
}); 

DEMO

+0

**點擊**不是複選框的正確事件,我認爲**更改**事件更好 –

+0

@ABFORCE看看有問題的HTML或我的演示。 '#selectall'是一個錨元素。要求是在用戶點擊複選框時選中/取消選中複選框。 –

+0

好吧,但是當我執行'$('#selectall')。attr('checked','checked');'?通過這個要求不會遇到 –

0
//checkall 
$('#selectall').on('click', function (e) { 
    $('input[type="checkbox"]').prop('checked', true); 
    e.preventDefault(); 
}); 
//uncheck all 
$('#unselectall').on('click', function (e) { 
    $('input[type="checkbox"]').prop('checked', false); 
    e.preventDefault(); 
}); 
2

改變你鏈接複選框,它會很容易

試試這個

<input id="selectall" type="checkbox" />select all 

JS

$('#selectall').click(function(){ 
    $('.friend').find('input:checkbox').prop('checked',this.checked); 
}) 

fiddle here


a鏈接

$('#selectall').click(function(){ 
    $('.friend').find('input:checkbox').prop('checked',true); 
}) 

再創建一個鏈接,取消選擇複選框

1

要檢查 -

$("input[type='checkbox']").prop('checked', true);

要取消 -

$("input[type='checkbox']").prop('checked', false);

做它用錨 -

$("#selectall").click(function(){ 
    $("input[type='checkbox']").prop('checked', true); 
}); 

而且還如果你有一些錨取消 -

<a id="deselectall" href="#" >deselect all</a>

您可以添加取消所有監聽器它 -

$("#deselectall").click(function(){ 
    $("input[type='checkbox']").prop('checked', false); 
}); 
0
$('#selectall').click(function(e){ 
    e.preventDefault(); 
    $('input[type="checkbox"]').prop('checked',this.checked); 
}); 
0

jQuery的version 1.6 +使用prop

$("#input[type='checked']").prop('checked',true); 

jQuery的version 1.6 -使用attr

$("#input[type='checked']").attr('checked','checked'); 

$("#input[type='checked']").attr('checked',true); 
+1

'true'對於選中的屬性不是有效值 –

+1

也就是說,當使用'prop'設置選中/選中時,應該使用布爾值而不是字符串。 – h2ooooooo

+0

@ABFORCE modified ans .... –