将数值替换为另一个

时间:2013-01-03 12:36:11

标签: javascript jquery

我的HTML格式如下,我将从后面的代码中分配文本:

<span id="NewL1" visible="false"
    runat="server"><span runat="server" id="NewL"></span></span>

文字类似于:“你有3个通知。”

我想更改jQuery中的数值。我试过这个但没有任何反应:

var notification = $("#NewL");
var numb = notification.text().match(/\d/g);
var finalTotalCount = parseInt(numb) - 1;
notification.text(notification.text().replace(numb, finalTotalCount ));

我做错了什么?

3 个答案:

答案 0 :(得分:1)

所以你有这个HTML代码:

<span id="NewL1" visible="false" runat="server">
    <span runat="server" id="NewL">you have 3 notifications</span>
</span>

然后,您的当前JavaScript代码才有效,前提是您的动态文本you have 3 notifications正在插入正确的位置,即内部span内。

这是jsFiddle:http://jsfiddle.net/leniel/ykg62/2/

答案 1 :(得分:1)

替换:

var finalTotalCount = parseInt(numb) - 1;

使用:

var finalTotalCount = parseInt(numb[0]) - 1;

.match(/\d/g)返回与正则表达式匹配的字符串数组。假设您的文本中只有1个数字,那么您将希望获得该数组的第一个结果。

修改

显然,parseInt使用数组中的第一个元素,如果提供了数组。所以,从技术上讲,我的建议没有必要。

答案 2 :(得分:1)

像这样修改你的代码并再试一次

var notification = $("#NewL");
var numb = notification.text().match(/\d/g)[0];
var finalTotalCount = parseInt(numb) - 1;
notification.text(notification.text().replace(numb, finalTotalCount ));

另外,在您的代码中:

<span id="NewL1" visible="false" runat="server">
    <span runat="server" id="NewL"></span>
</span>

隐藏的span (可见=“假”)中有span。因此无法看到任何更改。你可以简单地把你的代码放在这里再试一次:

<span runat="server" id="NewL"></span>