4

我的 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 ));

我做错了什么?

4

3 回答 3

1

所以你有这个 HTML 代码:

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

然后,只要您的动态文本you have 3 notifications被插入到正确的位置,即在内部span.

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

于 2013-01-03T12:38:19.500 回答
1

代替:

var finalTotalCount = parseInt(numb) - 1;

和:

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

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

编辑

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

于 2013-01-03T12:39:39.987 回答
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(visible="false")。因此将无法看到已完成的任何更改。你可以简单地把你的代码像这样然后再试一次:

<span runat="server" id="NewL"></span>
于 2013-01-03T13:14:07.720 回答