1

デフォルトでは、入力値は です。1クリックするたびに +1 を追加しますbutton。に達すると追加を停止します20

コードが number3で停止し、単に繰り返す理由がわかりません3

ここに画像の説明を入力

これは私のHTMLです

<input type="hidden" id="total" value="20" /> //total num
<input type="hidden" id="cur_num" value="1" /> //current num
<button type="button" id="add" >Add</button>

これはjavascriptとデモですhttp://jsfiddle.net/zXpen/

$(document).ready(function() {
    $(document).on("click", "#add", function() {

        cur = $('#cur_num').val();
        total = $('#total').val();
        console.log(cur);

        if (cur <= total) {
            cur = parseInt(cur)+parseInt(1);
            $('#cur_num').val(cur);
        }
    });
});
4

2 に答える 2

0

値を整数に変換する必要があります。

cur = parseInt($('#cur_num').val());
total = parseInt($('#total').val());

現時点では、コードは "2" <= "20"、次に "3" <= "20" (文字列として) を比較しています。したがって、if 条件が満たされないため、その中のコードは実行されません。

また、必要ありませんparseInt(1)cur = parseInt(cur)+1;結構です。

于 2013-11-03T15:26:05.357 に答える
0

.val()は文字列を返すため、cur <= total2 つの文字列を辞書式に比較します。つまり、各位置の文字を相互に比較します。また"2"、 in"20"は in よりも小さい"3"です"3"

値を数値に変換してからではなく、比較する前に、たとえば単項プラス演算子を使用して、値を数値に変換する必要があります。また、次のように変数を宣言することを忘れないでくださいvar

var cur = +$('#cur_num').val();
var total = +$('#total').val();
于 2013-11-03T15:27:13.217 に答える