You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jQuery对PHP格式化的千分位数字加1显示异常如何修复

问题根因

parseInt()解析带千位分隔符,的字符串时,会在遇到第一个非数字字符(即逗号)时直接截断解析,因此parseInt("8,500")实际得到的结果是8,加1后自然就显示为9。

修正代码

你需要先把拿到的数值文本里的逗号全部清除再转整数,加1后再重新格式化为带千位分隔符的字符串再更新到页面上,修正后的逻辑如下:

// 用text()拿纯文本,替换所有逗号后再转整数
const currentShares = parseInt($('.totalShares').text().replace(/,/g, ''));
const updatedShares = currentShares + 1;
// 用原生toLocaleString方法格式化千位分隔符
$('.totalShares').html(updatedShares.toLocaleString('en-US'));
额外优化建议

建议把数值更新的逻辑放到AJAX的success回调里执行,避免出现AJAX请求失败、后端没有实际累加数值,但前端已经更新显示的不一致问题,调整后的完整代码如下:

jQuery(function($) {
    $('.social-icon').on('click', function() {
        $.ajax({
            url: bloginfo.site_url + '/wp-json/functions/shares/' + bloginfo.post_id.ID,
            type: 'post',
            success: function() {
                console.log('works!');
                // 请求成功后再更新前端数值
                const currentShares = parseInt($('.totalShares').text().replace(/,/g, ''));
                const updatedShares = currentShares + 1;
                $('.totalShares').html(updatedShares.toLocaleString('en-US'));
            },
            error: function() {
                console.log('failed!');
            }
        });
    });
});

内容的提问来源于stack exchange,提问作者Scotty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:18:02