2

我的锚文本看起来像“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”,但有时会抓取“回复”。

有任何想法吗?

4

3 回答 3

3

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

var myreaction = $(this).text().match(/(\d+) Repl(?:y|ies) and (\d+) Mention(?:s?)/);
$(this).text(parseInt(myreaction[1], 10) + parseInt(myreaction[2], 10));
于 2012-07-15T04:25:42.750 回答
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]));
   // });
});​
于 2012-07-15T04:27:54.143 回答
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));
  });
});
于 2012-07-15T04:49:02.203 回答