1

我有一个 span 元素,其中包含一个数字,例如1,568.

单击按钮时,我需要该数字增加 1。所以1,568变成1,569.

如果我只是获取值并添加+ 1到它,则值变为2

("#artist-fan-count").text(parseInt($("#artist-fan-count").text()) + 1);

我应该尝试删除逗号然后运行上面的代码吗?如果我做下面的那行,什么都不会发生——这让我相信我做错了。耸耸肩。

$("#artist-fan-count").text().replace(',', '');

有小费吗?

4

5 回答 5

3

尝试以下操作以删除逗号并增加 1:

var fanCountEl = document.getElementById('artist-fan-count');
fanCountEl.innerHTML = parseInt(fanCountEl.innerHTML.replace(',', '')) + 1;
于 2013-03-15T22:53:13.027 回答
3

您可以删除所有逗号、parseInt、increment,然后用逗号重新构建您的数字,如下所示:

var $e = $("#artist-fan-count");
var num = parseInt($e.text().replace(',','')) + 1;
$e.text($.fn.digits(num));

使用来自 的数字:每三位数字添加逗号

于 2013-03-15T22:59:45.543 回答
2

好吧,您必须将替换的文本写回:

$("#artist-fan-count").text($("#artist-fan-count").text().replace(',', ''));

之后,您可以将文本解析为整数,添加您的数字并(如果您愿意)将该逗号放回原处。

如果你想重新组合你的文本:

var number = $("#artist-fan-count").text();
$("#artist-fan-count").text(parseInt(number/1000)+","+(number%1000));
于 2013-03-15T22:55:37.893 回答
1

你可以这样做:

var $e = $("#artist-fan-count");
var str = ''+(parseInt($e.text().replace(/,/g,''), 10)+1);
var r = /(\d+)(\d{3})/;
while (r.test(str))  str = str.replace(r, '$1' + ',' + '$2');
$e.text(str);
于 2013-03-15T22:53:51.693 回答
1

你已经接近了,但 replace 并没有就地完成:

$("#artist-fan-count").text($("#artist-fan-count").text().replace(',', ''));
于 2013-03-15T22:55:08.520 回答