如何更改一行的背景颜色而不是所有行?

时间:2012-09-21 08:21:36

标签: jquery

我有一个类trhlite

的表格行
"<tr class='trhlite'; bgcolor='".$color."'; onMouseOver=\"this.bgColor='pink';\"   
onMouseOut=\"this.bgColor='".$color."';\" id=\"row"."\">";

在每行中单击一个按钮,它必须更改整行的颜色。

但我的jQuery会更改表格中的所有行:

var id = id;

$.ajax({
    url: "<?php echo $this->address .'feedback/postflag'?>",
    type: 'POST',
    data: "id=" + id,
    success: function (data) {
        var index = parseFloat(id);
        // alert(index);            
        $(".trhlite").css("background-color", "yellow");
    }
})

我应该如何更改它以便仅更改特定行?

7 个答案:

答案 0 :(得分:1)

$(".trhlite .buttonSelector").click(function() {
    $(this).parent(".trhlite").css("background-color","yellow");
});

没有测试,但应该工作。 (将.buttonSelector替换为按钮的类,或使用语义术语(例如:input)。

答案 1 :(得分:0)

在jQuery中,使用$(".trhlite")作为选择器,将匹配所有具有trhlite类的元素。要使它只使用一行,您需要一种方法来唯一标识受影响的行,然后访问该行以更改其背景!

答案 2 :(得分:0)

$( “trhlite。 ”)的CSS(“ 背景色”, “黄色”); 意味着任何具有trhlite类的对象都会有bgcolor黄色。

尝试在每一行中为每个行添加唯一值,例如trhlite1 trhlite2或其他内容,以便您可以单独更改bgcolors。

我很乐意提供更多帮助,但我不能提供您提供的信息。

也许添加所有js代码会有所帮助。

答案 3 :(得分:0)

尝试以下代码,它可能是您想要实现的。

$(document).ready(function() {
   $("someTableSelector").find("tr:gt(0)").each(function(){
        $(this).css('background-color','#000000');
  })
});

答案 4 :(得分:0)

您不应在HTML中的属性之间添加分号。但是你的问题可能是因为所有行共享相同的ID,应该是不同的。

答案 5 :(得分:0)

看看我的例子:jsfiddle.net/ntvYq/

$('#mytable').on('click', 'tr', function(){
    $(this).css("background-color","yellow");
});

答案 6 :(得分:0)

你在函数中有传递选择器,并且像

一样使用
function change_bg(this)
{
  $(this +".trhlite").css("background-color","yellow");
}