【发布时间】:2018-06-11 09:14:27
【问题描述】:
我有一个包含多个元素的表格,例如“rok0”、“rok1”、“rok2”等,我想在将鼠标悬停在其中任何一个上时更改具有相同类的所有元素的背景。我得到了这个功能:
$(function() {
$('.rok1').hover(function() {
$('.rok1').css('background-color', 'yellow');
}, function() {
$('.rok1').css('background-color', '');
});
});
这个函数可以工作,但是我想在所有的类中都使用它,所以我想在它上面使用循环,但不知何故它不起作用。
我试过了:
$(function() {
for (i = 0; i < 20; i++) {
console.log('.rok'+i);
$('.rok'+i).hover(function() {
$('.rok'+i).css('background-color', 'yellow');
}, function() {
$('.rok'+i).css('background-color', '');
});
}
});
还有这个:
for (i = 0; i < 20; i++) {
$(function() {
console.log('.rok'+i);
$('.rok'+i).hover(function() {
$('.rok'+i).css('background-color', 'yellow');
}, function() {
$('.rok'+i).css('background-color', '');
});
});
}
他们都没有工作,我不知道为什么,你能帮帮我吗?
编辑:我的表格示例:
<table>
<tr>
<th class='rok0'>Col11</th>
<th class='rok1'>Col21</th>
<th class='rok2'>Col31</th>
</tr>
<tr>
<th class='rok0'>Col12</th>
<th class='rok1'>Col22</th>
<th class='rok2'>Col32</th>
</tr>
<tr>
<td class='rok0'>Col13</td>
<td class='rok1'>Col23</td>
<td class='rok2'>Col33</td>
</tr>
</table>
当我将鼠标悬停在其中一个元素上时,我想使用 SAME 类设置所有元素的背景。
【问题讨论】:
-
1) 不要使用增量
id或class属性。它们是一种反模式,会导致更复杂的代码完全没有任何好处。在这些元素上使用公共类 2) CSS 是一个更好的解决方案;使用:hover选择 -
但是当我将鼠标悬停在其中一个元素上时,我想更改具有相同类的多个元素的背景颜色。使用 css 是不可能的,是吗?
-
从问题中不清楚。您能否将您的 HTML 示例添加到显示元素如何相关的问题中
-
我在问题中添加了表格示例。我认为最好的解决方案是找出循环不起作用的原因。
-
谢谢。我为您添加了一个答案,它根本不需要上课。这确实不是一个好的解决方案。
标签: jquery css-selectors cycle