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

交換:

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>

spanhidden span(visible="false")の中にあります。そのため、変更が行われたことを確認できません。次のようにコードを配置して、もう一度試すことができます。

<span runat="server" id="NewL"></span>
于 2013-01-03T13:14:07.720 に答える
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/

于 2013-01-03T12:38:19.500 に答える