如何使用jQuery突出显示所选行?

时间:2012-05-28 19:22:15

标签: jquery

我使用的是jQuery 1.6.4,我有一个html表。我为表分配了一个id =" tbl"然后使用单击事件动态查找单击的行。在该行中,我想突出显示它,以便用户可以看到单击了哪一行。

我在jQuery书中使用了一些代码,并将其修改为与(this)一起使用。但是,它没有突出显示该行。

这是我的代码:

$('#tbl tr').click(function() { 
                //$('div.poem-stanza').addClass('highlight');
                $(this).addClass("highlight");
...

在firebug中,我验证(this)引用了一个tr元素,但由于某种原因,代码不能用于突出显示。我需要做什么才能使用(this)动态工作?

根据评论,我仔细检查了并且在我的css文件中没有.highlight。我已经为其他命名元素添加了它,并且在我对css文件的引用中输入了一个拼写错误。感谢firebug,我能够看到所有装载的东西和缺少的东西。

3 个答案:

答案 0 :(得分:2)

tr元素不能有背景颜色。为了突出显示一行,您必须突出显示该行中的每个td。假设您为tr元素指定了突出显示类,请将其添加到您的css文件中:

.highlight td { background-color:green; }

你会发现该行是绿色的。

或者你可以这样做:

$('#tbl tr').click(function() { 
      $(this).find('td').addClass("highlight");
});

祝你好运!

答案 1 :(得分:1)

如果在DOM之后动态添加这些行,则需要在表中委派click函数。

$(document).live('click', '#tbl tr', function(){ 
  $(this).addClass('highlight"); 
});

答案 2 :(得分:1)

您可以这样使用:

$("tr").one("click", "#tbl", function() {
      $(this).addClass("highlight");
});

<强> LIVE DEMO