我尝试选择具有相同类的所有元素,并对它们执行 css()。
当元素有一个类时它起作用,但当它们有两个类时,这些元素不会被选中。
我的元素:
var ville;
$("#enigme1_answers td").hover(
function() {
ville = $(this).html().toLowerCase();
$( "[class=" + ville + "]" ).css("background-color", "red");
}, function() {
$( "[class=" + ville + "]" ).css("background-color", "#2a3843");
}
);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<tr>
<td class="oslo"> O </td>
<td class="oslo lecaire"> L </td>
<td class="oslo viennes"> S </td>
<td class="oslo gaborone"> O </td>
<td class=erevan"> V </td>
<td class="berlin"> N </td>
<td class="rome"> E </td>
<td class="athenes"> S </td>
<td class="athenes"> E </td>
<td class="athenes"> N </td>
<td class="athenes"> E </td>
<td class="athenes"> H </td>
<td class="athenes"> T </td>
<td class="athenes damas"> A </td>
</tr>
我使用 $("[class=myclass]") 方法。 像 Athenes 这样的一类元素(A 除外)被正确修改,但不是那些具有两类的元素。我希望在选择其中一个类时修改元素。
谢谢,
最佳答案
使用:
$(".classname")
代替:
$("[class=classname]")
为什么
[class=classname]
比较整个类属性,因此您将获得两个类,oslos 和 lecaire。然而,$(".classname")
将获取带有该类的所有 HTML 对象。
将其应用到您的代码中
$("#enigme1_answers").hover(function() {
$(this).find("td.oslo").css("background-color", "red");
}, function() {
$(this).find("td.oslo").css("background-color", "#2a3843")
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr id="enigme1_answers">
<td class="oslo"> O </td>
<td class="oslo lecaire"> L </td>
<td class="oslo viennes"> S </td>
<td class="oslo gaborone"> O </td>
<td class="erevan"> V </td>
<td class="berlin"> N </td>
<td class="rome"> E </td>
<td class="athenes"> S </td>
<td class="athenes"> E </td>
<td class="athenes"> N </td>
<td class="athenes"> E </td>
<td class="athenes"> H </td>
<td class="athenes"> T </td>
<td class="athenes damas"> A </td>
</tr>
</table>
关于jquery - 选择具有相同类的所有元素,其中一些元素具有两个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42822411/