我有<ul>
的标记如下:
<ul>
<li class=""><a href="">Insulated And Extruded</a></li>
<li class=""><a href="">Grille Type Rolling</a></li>
<li class="active2"><a href="">PVC High Speed Doors</a></li>
<li class=""><a href="">Swinging doors</a></li>
</ul>
在这里,我想检查li
是否有一个名为active2
的类,如果有,那么我需要删除该类,并需要为该li
添加不同的类。
这是我在jQuery中尝试的方式:
if($('ul li').hasClass('active2')) {
$(this).removeClass('active2').addClass('active1');
}
但它不起作用。
有人可以帮我解决这个问题吗?
答案 0 :(得分:5)
要使用hasClass()
,您需要遍历所有li
元素并单独检查它们。
但是,此处不需要hasClass()
,因为您可以直接选择.active2
元素并在其上调用toggleClass()
,如下所示:
$('ul li.active2').toggleClass('active2 active1');
&#13;
.active1 { background-color: yellow; }
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class=""><a href="">Insulated And Extruded</a></li>
<li class=""><a href="">Grille Type Rolling</a></li>
<li class="active2"><a href="">PVC High Speed Doors</a></li>
<li class=""><a href="">Swinging doors</a></li>
</ul>
&#13;
答案 1 :(得分:2)
您不需要hasClass()
,您可以这样做:
$('ul li.active2').removeClass('active2').addClass('active1');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class=""><a href="">Insulated And Extruded</a></li>
<li class=""><a href="">Grille Type Rolling</a></li>
<li class="active2"><a href="">PVC High Speed Doors</a></li>
<li class=""><a href="">Swinging doors</a></li>
</ul>