jQuery元素上的加号或减号不起作用.为什么?

Plus or minus equals on jQuery element does not work. Why?

本文关键字:不起作用 为什么 jQuery 元素      更新时间:2023-09-26

运行时:

console.log($('.' + menu_id)[0].className);

我得到:

main-mobile-menu hide-left

当我运行时:

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

我得到:

NaN

我可以使用设置类

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

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

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

如果你只想使用javascript,我建议你使用.replace("old","new")

示例:

console.log($('.' + menu_id)[0].className.replace("hide-left", ""));

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

在JavaScript/Jquery中,+用于连接字符串,但-可以用于int上的算术运算,但不能用于字符串。