jQuery元素的加号或减号等于不起作用。为什么?

时间:2014-04-17 17:53:17

标签: javascript jquery

当我跑步时:

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方法,但是我一直在尝试使用带有jQuery元素的原生javascript。

3 个答案:

答案 0 :(得分:3)

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

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

示例:

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

答案 1 :(得分:1)

因为-没有这样做。它做数字减法。 className不是数字而'main-mobile-menu'不是数字,结果不是数字。

答案 2 :(得分:1)

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