javascript - jQuery:html 元素的内容被解释为字符串,而不是整数

标签 javascript jquery

当有人在我的网站上点赞评论时,会在显示点赞数量的数字右侧添加一个“1”,但当他们点击“不喜欢”时,它会正确计算。

例如:

14 + 1 = 141
14 - 1 = 13

jQuery

var elem   = $('.like_button'), //Like button
    num    = $('.num_likes'), //Get the element: number of likes
    oldnum = num.html(); //Number of likes

if(elem.html() == "Like") {
    elem.html("Dislike");
    num.html(oldnum+1); //Adds one like after liking it
} else {
    elem.html("Like");
    num.html(oldnum-1); //Deletes one like after disliking it
}

我真的很奇怪为什么不喜欢有效但不喜欢。

为什么 javascript 将 num 元素的值解释为字符串,即使它是一个数字?对我有什么建议吗?

最佳答案

因为 JavaScript 将 num.html() 解释为文本。 javascript 中字符串的 + 符号表示连接,但 - 并不意味着在这种情况下 javascript 意识到您想要进行数值计算。这就是它与 -

一起工作的原因

您应该使用 parseInt()oldnum 转换为整数。

关于javascript - jQuery:html 元素的内容被解释为字符串,而不是整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23435950/

相关文章:

javascript - 如何确保元素不可见并继续 Protractor 中的下一个条件

javascript - Jquery 滚动功能不适用于 iphone 设备

javascript - 按下/按键后获取输入值

javascript - location.href 不在 jquery 事件中重定向

javascript - 如何通过 jQuery 在 Select2 中获取额外的参数值?

javascript - 如何解析包含 UTF-8 字符的 Content-Disposition header

javascript - 如何使用 javascript 阻止所有客户端 cookie?

javascript - 如何在没有缓冲的情况下显示完全加载的视频?

javascript - 为什么我无法跳出这个 for 循环?

javascript - jQuery Orbit - 如何制作随机幻灯片?