-3

如果你有:

   var something = $('.element').text();
    // something = 'The tortoise ran 5 times faster than the fox.';

有没有办法可以编辑它以将“5”更改为新变量中的不同数字?所以我得到

newSomething = 'The tortoise ran 6 times faster than the fox.';

注意:来自 var 的数字是动态的,可以是 0 -> 100 之间的任何数字,我需要将其递增 1,并且需要即时递增(我无法将数字分配给 var,因为它来自文档加载并被分配)

4

3 回答 3

7
var something = $('.element').text();
var newSomething = something.replace(/\d+/, function(match) {
    return (Number(match) + 1).toString();
});

有关正在发生的事情的一些信息:代码使用了更复杂的str.replace函数形式。正常形式只需要两个字符串,并用第二个字符串替换第一个字符串的任何出现。

str.replace也可以使用正则表达式来搜索(在这种情况下,\d+,表示“一位或多位数字”)以及替换函数,正如我在这里使用的那样。我使用了一个匿名函数表达式,它接受一个参数match。每次匹配都会调用此函数,因此如果您的字符串有多个匹配项,它将运行多次。

在函数中,匹配(它是一个字符串)被转换为一个数字,递增,然后转换回一个字符串。然后将其作为匹配替换器的结果返回。

于 2013-08-07T23:40:14.367 回答
1

定义一个变量...

var num = 5;
var something = 'The tortoise ran ' + num + ' times faster than the fox.';

function whatever(){
 num++;
something = 'The tortoise ran ' + num + ' times faster than the fox.';
}
于 2013-08-07T23:41:38.803 回答
1

在 php 中如何在您的号码周围包裹一个 span,以便您可以使用 javascript 轻松访问它:

HTML

<span class="element">The tortoise ran <span class="number">6</span> times faster than the fox.</span>

然后使用 javascript,您可以轻松访问该号码:

Javascript

var number = Number($('.number').text());
$('.number').text(number + 1);

演示

于 2013-08-07T23:53:31.020 回答