选择具有相同类的所有元素,其中一些具有两个类

时间:2017-03-15 23:08:51

标签: jquery html class jquery-selectors

我尝试选择具有相同类的所有元素,并对它们执行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除外)的元素被正确修改,但不是那些有两个类的元素。我希望在选择其中一个类时修改元素。

谢谢,

1 个答案:

答案 0 :(得分:7)

使用:

$(".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>