我的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 ));
我做错了什么?
答案 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>