我使用的是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,我能够看到所有装载的东西和缺少的东西。
答案 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 强>