2014-02-25 59 views
0

我的表的結構如下所示。如何做到這一點,如果輸入被選中,它會添加一個類「選中」到它所在的< tr>?如果該複選框將被取消選中,它將從< tr>中刪除「selected」類。請幫我:)複選框,它添加到它所在的tr的類

<tr> 
    <td><input type="checkbox"></td> 
    <td><img src="../gallery/thumbnails/1.png" alt=""></td> 
    <td>tryb</td> 
    <td>png</td> 
</tr> 
<tr> 
    <td><input type="checkbox"></td> 
    <td><img src="../gallery/thumbnails/2.png" alt=""></td> 
    <td>test</td> 
    <td>png</td> 
</tr> 
[..] 

回答

4

您的onchange事件綁定到複選框:

$("input[type=checkbox]").change(function() { 
    $(this).closest('tr').toggleClass('selected', this.checked); 
}).change(); // manually trigger change after the binding 

每次複選框更改,需設置父行到選定的基於檢查的狀態。

+0

但如果checbox有parametr 「檢查」<輸入檢查類型=「複選框」>是的不起作用。我的意思是在頁面刷新後< tr >沒有「選擇」類:( – Axwell

+0

@ user3261158如果在標籤上加載了'checked',而不是通過'onchange'事件設置,則需要手動'onload'邏輯來處理頁面的初始渲染,或者你需要在綁定後手動觸發一個更改。回答更新。 – Bic

+0

@ user3261158,只需使用'$(':checkbox')。change(function(){ $(this)。最接近('tr')。toggleClass('selected',this.checked); })。change();'將會處理它 – Satpal

0

這很簡單。

$('input[type=checkbox]').change(function(){ 
    if(this.checked) 
     $(this).closest('tr').addClass('selected'); 
    else 
     $(this).closest('tr').removeClass('selected'); 
}); 
0

,你可以這樣做:

$(':checkbox').change(function() { 
    $(this).parent().toggleClass('selected'); 
}); 

參考文獻:

相關問題