编辑 #3 更新(2013 年 7 月 31 日);见 http://jsfiddle.net/mEVK3/17/
更改...我添加了 javascript
$('#table tr').click(function(){
$(this).toggleClass('highlight');
});
以及一个名为 highlight 的 CSS 类
.etable tr.highlight {
background-color: orange;
}
悬停选择器 (:hover) 现在也作用于 td 元素。它现在使用透明背景来允许一行看起来既突出显示又被选中。
.etable tr td:hover {
background-color: rgba(30,100,30,0.4);
cursor:pointer;
}
编辑#2(2013 年 7 月 30 日,这是你想要的吗? http://jsfiddle.net/mEVK3/12/
我重新排列了 css 的顺序以使 css 优先级正常工作。如果这不是您想要做的,我需要说明最终结果的外观。
编辑#1:我有一个非常奇怪的答案,它与 css 优先级和代码添加到 css 的顺序有关!!!!在我之前的回答中,内联样式被偶数行的 css 样式覆盖!
我想这就是你想要的。
http://jsfiddle.net/mEVK3/5/
我认为这是你不想要的
http://jsfiddle.net/mEVK3/4/
我使用了脚本
$('#table.etable tr').addClass("bluebackground");
其中 bluebackground 是一个简单的类
其余代码如下:
HTML
<table class="etable" id="table">
<tr><td>Some text</td></tr>
<tr><td>Some text 0</td></tr>
<tr><td>Some text 1</td></tr>
<tr><td>Some text 2</td></tr>
<tr><td>Some text 3</td></tr>
<tr><td>Some text 4</td></tr>
<tr><td>Some text 5</td></tr>
<tr><td>Some text 6</td></tr>
<tr><td>Some text 7</td></tr>
<tr><td>Some text 8</td></tr>
<tr><td>Some text 9</td></tr>
</table>
CSS
.etable tr:nth-child(odd) {
background: lightgrey;
}
.etable tr.bluebackground{
background-color: lightblue;
}
.etable tr:hover {
background: #f00;
}
.etable tr.highlight{
background-color: yellow;
}
Javascript
$('#table tr:eq(3)').addClass("highlight");
//change the background color in javascript
$('#table.etable tr').addClass("bluebackground");
注释掉脚本中的最后一行以从所有行中删除背景。
让我大吃一惊的是 CSS 的顺序很重要。很多
它一定要是
第 n 个子颜色(偶数/奇数)
自定义背景(稍后将在脚本中添加)
悬停,因为它位于自定义背景之上
突出显示(因为这超出了其余部分)
css 顺序很重要,因为在我编写的脚本中,它们都具有同等的地位。我想,相反,您可以为悬停和突出显示添加额外的特异性,以便它们始终位于顶部。然后css看起来像....
#table.etable tr:hover {
background: #f00;
}
table#table.etable tr.highlight{
background-color: yellow;
}
这将使突出显示的优先级最高,然后悬停然后下一个最高...
阅读http://designshack.net/articles/css/what-the-heck-is-css-specificity/以获取有关 css 特异性和优先级以及它如何决定应用哪些样式的更多答案(大约在页面的一半处查看)