改变tr背景颜色

时间:2009-11-30 17:26:39

标签: jquery css

我有这样的事情:

<tr id='<%=currentRow %>' onclick="SetBackgroundColor(this)" style="background-color:Yellow">

当我点击一行时,我想改变它的背景颜色,我确实喜欢这样:

function SetBackgroundColor(rowId) 
{
     $(rowId).css("background-color", "#000000");
}

但我不知道为什么它不起作用。有什么建议吗?

7 个答案:

答案 0 :(得分:32)

IE有TR元素的背景颜色问题。一种更安全的方法是将背景设置为TR中的TD和TH:

<table id="tabletest">
    <tr>
        <td>testcell</td>
    </tr>
</table>

<script>
$('#tabletest tr').bind('click', function(e) {
    $(e.currentTarget).children('td, th').css('background-color','#000');
})
</script>

添加:您可以为整个表分配单个事件处理程序以提高性能:

$('#tabletest').bind('click', function(e) {
    $(e.target).closest('tr').children('td,th').css('background-color','#000');
});

答案 1 :(得分:9)

在jQuery中,您不必使用onclick属性来分配事件处理程序。假设您为要影响的每个tr添加一个名为mytr的类。然后你可以做这样的事情:

 $(document).ready(function(){
        $(".mytr").click(function(){
             $(this).css("background-color", "#000000");
        });
 });

这会将事件处理程序应用于具有类mytr。

的所有行

答案 2 :(得分:6)

这将在点击新行时重置每一行......

$(document).ready(function(){

  $('tr').click(function(){
    $('tr td').css({ 'background-color' : 'green'});
    $('td', this).css({ 'background-color' : 'red' });
  }); 

});

演示:http://jsbin.com/aciqi/

答案 3 :(得分:2)

 $('#RowID').children('td, th').css('background-color','yellow');

答案 4 :(得分:1)

更简单的解决方案是对表中的所有行或addClass使用选择器。

示例

$("#myTable tr").click(function() {
    $(this).css('background-color', '#f00');
});

$("#myTable tr").click(function() {
    $(this).addClass('selected');
});

答案 5 :(得分:0)

尝试更改表格单元格背景颜色,而不是更改表格行背景颜色。

$(document).ready(function() {
    $(".mytr td").click(function() {
         $(this).css("background-color", "#000000");
    });
});

答案 6 :(得分:0)

谢谢大家......问题在于我在主页上加载了j query-1.3.2.min.js before query-1.3.2-vsdoc.js这就是它无法正常工作......再次感谢