removeclass不起作用

我有一个非常简单的问题,实际上这不是问题,这是修复javascript错误,无论如何,这里是代码:

$(document).ready(function() { $('#accordion a.item').click(function () { $(this).addClass('selected'); $(this).removeClass('selected'); $('#accordion li').children('ul').slideUp('slow'); $(this).siblings('ul').slideDown('slow'); }); }); 

和HTML:

  

当我单击其中一个链接时,会将“选定”类添加到其中,但是当我单击其他链接时,“选定”类不会删除,那可能是什么错误?

谢谢大家的帮助! 对此,我真的非常感激!

目前还不清楚你要做什么,但看起来你想要将这个类添加到被点击的元素中并将其从所有兄弟姐妹中 删除 。 您当前的代码将类添加到同一元素并将其删除,最终没有执行任何操作。

你可能想要类似的东西

 $(document).ready(function() { $items = $('#accordion a.item'); // all the items $items.click(function () { $items.removeClass('selected'); // remove class from everything $(this).addClass('selected'); // add class to clicked item $('#accordion li').children('ul').slideUp('slow'); $(this).siblings('ul').slideDown('slow'); }); }); 

$(this)是您点击的链接,而不是所有链接。 您需要删除所有链接的类。

 $(document).ready(function() { $('#accordion a.item').click(function () { $('#accordion a.item').removeClass('selected'); $(this).addClass('selected'); $('#accordion li').children('ul').slideUp('slow'); $(this).siblings('ul').slideDown('slow'); }); }); 

使用ToggeleClass rahter然后使用adClass/ removeClass方法。

 $("Selector").toggleClass('name of class',true); //apply class $("Selector").toggleClass('name of class',false); //remove class 

函数中的以下行是添加和删除选择到同一元素的类。

 $(this).addClass('selected'); $(this).removeClass('selected'); 

因为你要添加和删除由此引用的元素上的类,这是当前元素(刚刚单击的元素)。 这些将做的是将选定的类添加到单击的元素并立即删除它。

你需要做的是

1-首先删除从包含它的任何元素中选择的类

2-将选定的类添加到此引用的当前元素

一种方法是

 $('#accordion a.selected').removeClass('selected'); $(this).addClass('selected'); 

希望有所帮助。