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
。