次のような単純なhtmlブロックがあります。
<span id="replies">8</span>
Jqueryを使用して、値に1を追加しようとしています(8)。
var currentValue = $("#replies").text();
var newValue = currentValue + 1;
$("replies").text(newValue);
何が起こっているのかは、次のように表示されています:
81
それから
811
9ではなく、正解です。私は何を間違えていますか?
parseInt()は、強制的に整数型にするか、変換を実行できない場合はNaN(数値ではない)にします。
var currentValue = parseInt($("#replies").text(),10);
2番目のパラメーター(基数)は、10進数として解析されることを確認します。
Parse intはここで使用するツールですが、他のツールと同様に正しく使用する必要があります。 parseIntを使用する場合、正しい基数が使用されるように、常にradixパラメーターを使用する必要があります
var currentValue = parseInt($("#replies").text(),10);
整数はその逆ではなく文字列に変換されています。あなたが欲しい:
var newValue = parseInt(currentValue) + 1
iEではparseIntが機能しませんでした。したがって、整数として必要な変数に+を使用しました。
var currentValue = $("#replies").text();
var newValue = +currentValue + 1;
$("replies").text(newValue);
.jsの8進数の誤解に関して-私はこれを使用しました...
parseInt(parseFloat(nv))
先行ゼロでテストした後、正しい表現で毎回戻ってきました。
お役に立てれば。
コードは次のようになります。
<span id="replies">8</span>
var currentValue = $("#replies").text();
var newValue = parseInt(parseFloat(currentValue)) + 1;
$("replies").text(newValue);
1ずつ増やすには、次のようにします。
var newValue = currentValue ++;
変数に1を掛けて、JavaScriptに変数を数値に変換させてから、他の値に追加することができます。これは、乗算が加算のように過負荷にならないため機能します。これはparseIntほど明確ではないと言う人もいるかもしれませんが、それはそれを行う方法であり、まだ言及されていません。
var month = new Date().getMonth();
var newmon = month + 1;
$('#month').html((newmon < 10 ? '0' : '') + newmon );
月の問題を修正しました。getMonth配列は0から11までです。
単純に、テキスト値の前にプラス記号を追加します
var newValue = +currentValue + 1;