删除类(如果存在)并使用jquery添加新类

use*_*831 3 javascript jquery

我有一个标记<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> 
Run Code Online (Sandbox Code Playgroud)

在这里,我想检查li一个名为的类active2,如果有,那么我需要删除该类,并需要添加不同的类li.

这是我在jQuery中尝试的方式:

if($('ul li').hasClass('active2')) {
  $(this).removeClass('active2').addClass('active1'); 
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

任何人都可以帮我解决这个问题吗?

Ror*_*san 5

要使用hasClass()你需要遍历所有li元素并单独检查它们.

但是这里根本不需要,hasClass()因为你可以.active2直接选择元素并调用toggleClass()它们,如下所示:

$('ul li.active2').toggleClass('active2 active1');
Run Code Online (Sandbox Code Playgroud)
.active1 { background-color: yellow; }
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)