Javascript 如何从由两部分组成的类设置中删除一个类值

Javascript 如何从由两部分组成的类设置中删除一个类值,javascript,jquery,Javascript,Jquery,我有以下代码: if((String(parent).length > 0) && (String(this.className).length > 0)) { 其中this.className包含值“top currentMenu” 使用this.className name,我需要一种仅使用jQuery从该.className中删除“currentMenu”的方法,以便该.className的最终结果仅为“top”。它只是: $(this).removeClas

我有以下代码:

if((String(parent).length > 0) && (String(this.className).length > 0)) {
其中this.className包含值“top currentMenu”

使用this.className name,我需要一种仅使用jQuery从该.className中删除“currentMenu”的方法,以便该.className的最终结果仅为“top”。

它只是:

$(this).removeClass('currentMenu')
参考:


在纯JavaScript中,您可以执行以下操作:

function removeClass(node, cls) {
    if(node && node.className && node.className.indexOf(cls) >= 0) {
        var pattern = new RegExp('\\s*' + cls + '\\s*');
        node.className = node.className.replace(pattern, ' ');
    }
}

或者我不明白你的问题:)

你好,菲利克斯,尝试了这个,但没有成功。我想我需要实际使用这个.className,然后只去掉“currentMenu”类名。@扁桃体:你是说你尝试了
$(this).removeClass()
?这肯定管用,你一定做错了什么。你能发布更多的代码吗?你是在哪种情况下这样做的?在调用jQuery函数之前,不要忘记将
这个
传递到
$()
中。是否只通过传递第二个参数就可以用简单jQuery实现removeClass函数?@扁桃体:
removeClass
是简单的jQuery解决方案。我函数中的其余部分只是字符串处理,jQuery在这里帮不了你。旁注:你不需要
string(this.className).length
className
属性已经是一个字符串,因此不需要从中显式创建新字符串。只需使用
this.className.length