2011-08-30 60 views
2

我有一個表格,其中每行的第一列是複選框,其餘列是文本。我想要做的是追溯地更改列2:n中文本的顏色,以查看複選框被選中的任何行。當選中複選框時更改表格列文本的顏色

我正在使用jQuery(並試圖刷新我的知識),所以使用這種解決方案將是首選,但直JS也AOK。

發現的解決方案:

$("input:checked").each(function(idx) { 
    $(this).parent().siblings('td').css("color", "red"); 
}); 

回答

3

這裏有一個jsfiddle example了轉動sibling<td>元素紅色時複選框被選中,並把它們白色時,它的選中。

有了這個基本的HTML,

<table> 
    <tr><td><input type="checkbox" /></td><td>Cell 2</td><td>Cell 3</td></tr> 
    <tr><td><input type="checkbox" /></td><td>Cell 2</td><td>Cell 3</td></tr> 
    <tr><td><input type="checkbox" /></td><td>Cell 2</td><td>Cell 3</td></tr> 
</table> 

而且此Javascript。

(function($) { 
    $(document).ready(function() { 
     $('input[type=checkbox]').click(function(e) { 
      var bgColor = $(this).attr('checked') == 'checked' ? '#f00' : '#fff'; 

      $(this).parent().siblings('td').css('background', bgColor); 
     }); 
    }); 

})(jQuery); 
+0

他要求列改變顏色,而不是行。 – Blazemonger

+0

我認爲他的意思是檢查後的複選框後面的列。也許他可以澄清。 –

+0

是的,我認爲你是對的。我需要停止在這裏很快閱讀這些問題。 – Blazemonger

相關問題