鉴于此HTML:
<html>
<head>
<style type="text/css">
tr.Class1
{
background-color: Blue;
}
.Class2
{
background-color: Red;
}
</style>
</head>
<body>
<table>
<tr id="tr1">
<td>Row 1</td>
</tr>
<tr id="tr2">
<td>Row 2</td>
</tr>
</table>
</body>
</html>
下面是脚本部分。点击第一行会发生什么?它会保持蓝色还是会变红?如果它将保持蓝色,如何将其变为红色而不从行中删除Class1类(因此我可以在以后删除Class2类并且该行将返回其原始颜色的蓝色)?
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$("#tr1").addClass("Class1");
$("tr").click(function() {
/* clicked tr's should use the Class2 class to indicate selection, but only one should be selected at a time */
$(".Class2").removeClass("Class2");
$(this).addClass("Class2");
});
});
</script>
修改 我应该说 - 我试过这个,并没有按预期工作(在FireFox或IE中)。发生了什么事?
答案 0 :(得分:1)
它应该变成红色...这就是为什么它被称为级联样式表...属性的新增加会覆盖旧版本。
答案 1 :(得分:1)
答案 2 :(得分:0)
试试这个:
$("tr").click(function() {
/* clicked tr's should use the Class2 class to indicate selection, but only one should be selected at a time */
$(".Class2").removeClass("Class2");
$(this).toggleClass("Class1");
$(this).addClass("Class2");
$(this).toggleClass("Class1");
});
我不知道它是否会起作用,但也许会让你更多地解决这个问题。
答案 3 :(得分:-2)
想出来。我把我的例子弄错了一点。 CSS实际上看起来像:
tr.Class1
{
background-color: Blue;
}
.Class2
{
background-color: Red;
}
因此,最具体的规则适用,就像Mozilla告诉我here:
如果声明了相同的属性 这两个规则,冲突得到解决 先通过特异性,然后 根据CSS的顺序 声明。班级的顺序 class属性不相关。