jQuery在字符串中添加数字

时间:2012-07-15 04:21:50

标签: jquery arrays each

我有一个看起来像" 1个回复和30个提及的锚文本"或" 3回复和1提及" (显然有不同的数字)。我尝试使用jQuery用添加的数字替换该锚文本。

$(document).ready(function() {
$('header div.comments-link a').each(function(index) {
    var myreaction = $(this).text().split(" ");
    $(this).text(myreaction[0]+myreaction[3]);
});
});

因此,对于第一个示例,它将是1 + 30,因此文本替换将为31.对于第二个示例,它将是3 + 1,因此文本替换将为4.

但是,它似乎没有替换实际文本,似乎没有正确地执行拆分数组。当它下到页面时,它有时会抓住" 1"但其他时候抓住"回复"。

有什么想法吗?

3 个答案:

答案 0 :(得分:3)

我尝试使用正则表达式并将数字字符串解析为实际整数:

var myreaction = $(this).text().match(/(\d+) Repl(?:y|ies) and (\d+) Mention(?:s?)/);
$(this).text(parseInt(myreaction[1], 10) + parseInt(myreaction[2], 10));

答案 1 :(得分:2)

工作演示 http://jsfiddle.net/BxUXX/1/

添加2次使用parseInt

希望有所帮助

<强>码

var str = "1 Reply and 30 Mentions";

$(document).ready(function() {
   // $('header div.comments-link a').each(function(index) {
        var myreaction = str.split(" ");
        alert(parseInt(myreaction[0]) + parseInt(myreaction[3]));
   // });
});​

答案 2 :(得分:0)

试试这个:

$(document).ready(function() {
  $('header div.comments-link a').each(function(index) {
    var s = $(this).text().replace(/\D/g, "").split("")
    $(this).text(parseInt(s[0], 10) + parseInt(s[1], 10));
  });
});