Jquery 如何删除同一元素上的重复类

Jquery 如何删除同一元素上的重复类,jquery,duplicates,removeclass,Jquery,Duplicates,Removeclass,如何使用JQuery删除同一元素上的重复类 例如: <a href="#" class="foo foo">link</a> 在这个元素中我只需要一个类,如下所示: <a href="#" class="foo">link</a> 我试过了,但没有成功。谢谢您可以使用删除现有类,并使用以下方法重新添加一个类: $(“a”).removeClass(“foo”).addClass(“foo”) 您可以使用.attr()函数获取所有类:

如何使用JQuery删除同一元素上的重复类

例如:

<a href="#" class="foo foo">link</a>

在这个元素中我只需要一个类,如下所示:

<a href="#" class="foo">link</a>


我试过了,但没有成功。谢谢

您可以使用删除现有类,并使用以下方法重新添加一个类:

$(“a”).removeClass(“foo”).addClass(“foo”)

您可以使用.attr()函数获取所有类:

var element = $('a');
var classes = element.attr('class');
然后可以拆分这些类:

var classArray = classes.split(' ');
之后,您可以循环这些类

var temp = Array();
classArray.forEach(function(c){
    // check if not exists in temp array
    if(temp.indexOf(c) < 0){
        // add to temp array
        temp.push(c);
    }
    else {
        // remove class (and add again to get it once)
        element.removeClass(c).addClass(c);
    }
});
var-temp=Array();
forEach(函数(c){
//检查临时数组中是否不存在
if(温度指数(c)<0){
//添加到临时数组
温度推动(c);
}
否则{
//删除类(并再次添加以获得一次)
元素.removeClass(c).addClass(c);
}
});
以此为例。

您也可以使用检查元素是否包含要查找的重复类,然后删除不需要的类并重新添加。链接到


变量元素=$('a');
警报(元素属性(“类”);
if(elem.hasClass('foo-foo')){
元素移除类(“foo”)。添加类(“foo”);
警报(元素属性(“类”);
}

如果有多个Entries,问题是什么?因为插件有一个bug,我需要删除重复的类。@T J,很抱歉,我是stackoverflow的新手。我选择Mathias答案是因为它更完整,有一个循环,这就是我所需要的。@DougLN循环是完全不必要的。。!两个答案的作用是一样的,被接受的答案效率要低得多……好吧,我同意你的看法。我很快地看了看,没有意识到这一点。对不起,谢谢你的回答@Dennis R。这就是我所需要的!谢谢大家。我已经包装好了,包括了你们的初始答案,并自我返回了chain-ability。谢谢你们的回答@Mathias
<a href="#" class="foo foo">link</a>

var elem = $('a');
alert(elem.attr('class'));

if (elem.hasClass('foo foo')){
    elem.removeClass("foo").addClass("foo");
    alert(elem.attr('class'));
}