Javascript jQuery元素上的加号或减号等于无效。为什么?

Javascript jQuery元素上的加号或减号等于无效。为什么?,javascript,jquery,Javascript,Jquery,当我跑步时: console.log($('.' + menu_id)[0].className); console.log($('.' + menu_id)[0].className -= ' hide-left'); 我得到: main-mobile-menu hide-left NaN 当我跑步时: console.log($('.' + menu_id)[0].className); console.log($('.' + menu_id)[0].className -= '

当我跑步时:

console.log($('.' + menu_id)[0].className);
console.log($('.' + menu_id)[0].className -= ' hide-left');
我得到:

main-mobile-menu hide-left
NaN
当我跑步时:

console.log($('.' + menu_id)[0].className);
console.log($('.' + menu_id)[0].className -= ' hide-left');
我得到:

main-mobile-menu hide-left
NaN
我可以使用以下命令设置类:

$('.' + menu_id)[0].className = 'main-mobile-menu'

但是我不明白为什么-=不起作用。我知道jQuery中有一个removeClass方法,但我一直在尝试在可能的情况下将本机javascript与jQuery元素一起使用。

因为
-
不能做到这一点。它做数字减法。
className
不是一个数字,
'main-mobile-menu'
不是一个数字,结果也不是一个数字。

因为
-
不会这样做。它做数字减法。
className
不是数字,
'main-mobile-menu'
不是数字,结果也不是数字。在JavaScript/Jquery中
+
用于表示字符串,但是
-
可以用于int上的拟态操作,但不能用于string上的拟态操作。

在JavaScript/Jquery中
+
用于concatating string,但是
-
可以用于int上的算术运算,但不能用于string上。

+=
可以用于字符串串联,但一旦将字符串添加到数字上,整个变量就会变成字符串,因此
-=
不能使用,因为无法从字符串中减去字符串

如果您只想使用javascript,我建议您使用

例如:


+=
可用于字符串串联,但一旦将字符串添加到数字中,整个变量就会变成字符串,因此不能使用
-=
,因为无法从字符串中减去字符串

如果您只想使用javascript,我建议您使用

例如:


为什么要使用“带jQuery元素的本机javascript”?既然您使用的是jQuery,为什么不使用.addClass()和.removeClass()功能呢?
-
运算符只用于数字,不用于字符串<另一方面,代码>+有两个功能。这是加法和字符串连接。@RocketHazmat为了提高速度,我想使用原生JS。最近阅读了一篇文章,文章测量了本地JS与jQuery元素混合的速度差异。在一个小应用程序中并不重要,但可以累积数月/数年的编码。@ltrainpr:那你为什么要混合使用jQuery和“香草JS”?使用其中一种,不要混搭。如果您只是想忽略jQuery而使用原生DOM方法,那么为什么要浪费时间在jQuery上呢?如果不使用jQuery方法,调用jQuery构造函数是浪费时间。另请参见:为什么要使用“带jQuery元素的本机javascript”?既然您使用的是jQuery,为什么不使用.addClass()和.removeClass()功能?
-
运算符仅用于数字,而不用于字符串<另一方面,代码>+有两个功能。这是加法和字符串连接。@RocketHazmat为了提高速度,我想使用原生JS。最近阅读了一篇文章,文章测量了本地JS与jQuery元素混合的速度差异。在一个小应用程序中并不重要,但可以累积数月/数年的编码。@ltrainpr:那你为什么要混合使用jQuery和“香草JS”?使用其中一种,不要混搭。如果您只是想忽略jQuery而使用原生DOM方法,那么为什么要浪费时间在jQuery上呢?如果不使用jQuery方法,调用jQuery构造函数是浪费时间。另请参见:在JavaScript中,您的意思是。jQuery不是一种语言,你的意思是用JavaScript。jQuery不是一种语言。好吧,那太快了。谢谢你提供了一个解决问题的方法。好的,很快。感谢您提供了解决此问题的方法。