Javascript 使用jQuery更改已单击表行的颜色
我需要你的帮助 如何使用jQuery 更改我的表中所选行的背景色对于本例,让我们使用突出显示的css类Javascript 使用jQuery更改已单击表行的颜色,javascript,jquery,Javascript,Jquery,我需要你的帮助 如何使用jQuery 更改我的表中所选行的背景色对于本例,让我们使用突出显示的css类 <!DOCTYPE html> <html> <head> <style type="text/css"> .highlighted { background: red; } .nonhighlighted { background: white; } </style> </head> <
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.highlighted {
background: red;
}
.nonhighlighted {
background: white;
}
</style>
</head>
<body>
<table id="data" border="1" cellspacing="1" width="500" id="table1">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
如果再次单击同一行,则将其更改回默认颜色白色选择css类nonhighlighted
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
.highlighted {
background: red;
}
.nonhighlighted {
background: white;
}
</style>
</head>
<body>
<table id="data" border="1" cellspacing="1" width="500" id="table1">
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</body>
</html>
创建一个应用行颜色的css类,并使用jQuery打开/关闭该类: CSS: jQuery:
$('#data tr').on('click', function() {
$(this).toggleClass('selected');
});
第一次单击将添加背景颜色为蓝色的类,下一次单击将删除该类,并将其还原为以前的任何类。重复
对于已有的两个CSS类,我会将.nonhighlighted类更改为默认应用于表的所有行,然后切换.highlighted的开和关:
<style type="text/css">
.highlighted {
background: red;
}
#data tr {
background: white;
}
</style>
$('#data tr').on('click', function() {
$(this).toggleClass('highlighted');
});
下面是一个可能的解决方案,它将为您的表的整行着色 CSS jQuery
$('#data tr').click(function(e) {
$('#data tr').removeClass('highlighted');
$(this).toggleClass('highlighted');
});
演示:在css中:
.selected{
background: #F00;
}
在jquery中:
$("#data tr").click(function(){
$(this).toggleClass('selected');
});
基本上,您可以创建一个类,并将其添加/删除到所选行中
顺便说一句,你本可以付出更多的努力,在你的代码xD中根本没有css或jquery/js
$("#data td").toggle(function(){
$(this).css('background-color','blue')
},function(){
$(this).css('background-color','ur_default_color')
});
如果你想要多个选择
$("#data tr").click(function() {
$(this).toggleClass("highlight");
});
如果希望一次只选择表中的一行
$("#data tr").click(function() {
var selected = $(this).hasClass("highlight");
$("#data tr").removeClass("highlight");
if(!selected)
$(this).addClass("highlight");
});
还要注意,您的表标记有两个ID属性,您不能这样做。删除表的第二个ID声明:
<table id="data" border="1" cellspacing="1" width="500" **id="table1"**>
我不是JQuery方面的专家,但我有相同的场景,我能够实现如下目标:
$("#data tr").click(function(){
$(this).addClass("selected").siblings().removeClass("selected");
});
风格:
<style type="text/css">
.selected {
background: red;
}
</style>
突出
{
背景色:木瓜鞭;
}
要更改单元格的颜色,请执行以下操作:
$(document).on('click', '#table tbody td', function (event) {
var selected = $(this).hasClass("obstacle");
$("#table tbody td").removeClass("obstacle");
if (!selected)
$(this).addClass("obstacle");
});
从这里开始:在这方面你自己有没有做过任何努力。就像使用选择器和单击事件一样?这是选择td,它应该选择右侧的tr?错误是!谢谢你对我懒惰打字的敏锐观察者!我建议改为$data tr,以防同一页上有其他表格。更新答案。好的质量控制小组!如何让它取消对上一个选定行的监视并更改新选定行的行颜色?我更新了代码。您必须删除所有行上的类,然后将其添加到所选行。仅高亮显示所选单元格,不忽略最后一行,当选择新行时,我有一个表,对于每一行,检查到期日期列,如果它超过今天的日期,则将该行字体颜色设置为红色。我如何做到这一点?
<style type="text/css">
.selected {
background: red;
}
</style>
$("#table tr").click(function() {
$("#table tr").removeClass("highlight");
$(this).addClass("highlight");
});
$(document).on('click', '#table tbody td', function (event) {
var selected = $(this).hasClass("obstacle");
$("#table tbody td").removeClass("obstacle");
if (!selected)
$(this).addClass("obstacle");
});