我有一个看起来像" 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"但其他时候抓住"回复"。
有什么想法吗?
答案 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));
});
});