2013-01-22 41 views
-1

我有這個網站如何使用複選框使用Javascript更改<tr> bgcolor?

<table border="1"> 
    <tr> 
     <td> 
      <input type="checkbox"> 
     </td> 
     <td> 
      Hello 
     </td> 
     <td> 
      my friend! 
     </td> 
    </tr> 
    <tr> 
     <td> 
      <input type="checkbox"> 
     </td> 
     <td> 
      ... 
     </td> 
     <td> 
      ... 
     </td> 
    </tr> 
    ... 
</table> 

什麼我需要做的,如果我想在此複選框被激活,以改變我的<tr> BGCOLOR?我想我需要用onclick()來做點什麼。

編輯:我需要的是複選框應該只修改他當前的行。

+0

如果移動複選框在表外,您還可以做它在純CSS:http://jsbin.com/egihej/1/edit – fcalderan

+0

@FabrizioCalderan我想,一個複選框將不會在只有一個決賽桌。 – Yoshi

+0

我實際上需要它在表格內,並且我只需要修改「當前」所選行。 – abierto

回答

3

之一可能的方法:

document.getElementById('table').onclick = function(e) { 
    var e = e || event, 
     el = e.srcElement || e.target; 
    if (el.tagName == 'INPUT') { 
     el.parentNode.parentNode.className = el.checked ? 'active' : ''; 
    } 
}; 

http://jsfiddle.net/TQbpH/2/

在此示例性事件氣泡s到監聽它的父表,然後在需要時調度它。

+0

+1優雅的解決方案 –

1

http://jsfiddle.net/L6xsB/

$(function() { 
    $('tr').on('click', 'input:checkbox', function() { 
     $(this).parents('tr').toggleClass('active'); 
    }); 
}); 

CSS:

tr.active { 
    background-color: #FFC; 
} 
+0

如果OP沒有在問題或問題標籤中包含它,我會小心的建議jQuery。 (downvote不是我) – Yoshi

+0

沒有標籤jQuery ... – 2013-01-22 09:06:53

+0

它的工作原理,但我沒有要求jQuery。 – abierto