基本上我有一个包含很多行的表。表格使用一些css
在白色和灰色背景之间交替.profile tr:nth-child(odd) { background:#eee; }
.profile tr:nth-child(even) { background:none; }
现在我希望用户能够选择一行并突出显示为黄色。完成一些简单的Jquery
$(".Select").click(function() {
//Deselect all other Rows
$(".Select").show().prev().hide().parent().parent().css('background', 'none');
//get Id
var Row = $(this).parent().parent();
var MatchId = Row.attr('id');
$(this).hide().prev().show();
Row.css('background', '#FFFFBA');
});
问题在于我用$(“。select”)....... parent()。parent()。css('background ....
抓取所有行将其设置为“none”会使所有行变为白色并丢失替代着色是否有办法将background属性返回到其原始状态。
答案 0 :(得分:2)
创建第三个类:
.profile tr.hover { background:#FFFFBA; }
而不是
Row.css('background', '#FFFFBA');
你做了
Row.addClass("hover");
而不是
$(".Select").s.//.parent().css('background', 'none');
你做了
$(".Select").s.//.parent().removeClass("hover");
//只是为了缩短长线。
答案 1 :(得分:0)
而不是那么麻烦,只需在.css样式表中使用TR选择器,然后使用:hover
标记并让浏览器处理它。你可以卸载到底层浏览器的任何工作。
但是,我不完全确定你的代码是你想要做的。看起来您想要更改其他行的背景而不是您所在行的背景。如果是这种情况,那么您需要将一些.data()
附加到目标对象并使用鼠标输出事件将其从您存储的任何内容中更改回来。
答案 2 :(得分:0)
$(".Select").show().prev().hide().parent().parent().css('background', '');
答案 3 :(得分:0)
卡斯帕在这里是正确的,原因如下:
话虽如此,如果你想保留你拥有的代码,只需使用$.not()
选择器从jQuery选择器中删除奇数行:
$(".Select").show().prev().hide().parent().parent().not(':nth-child(odd)').css('background', 'none');