JS

2017-11-27 11 views
-1
の値を増やす

変数valueをインクリメントしようとしています。チェックボックスをオンにすると、機能calが実行され、チェックされたすべての項目のadvert.numbersが追加されます。変数valueadvert.numbersをどのように増やすことができますか?JS

私のコードでは、私はNANを取得し続けています。私は値をインクリメントし、id="values

<input type="text" class="form-control" id="values" placeholder="values" name="values"> 
<script type="text/javascript"> 
var values; 
function cal(item) { 
    var advert = JSON.parse(item.dataset.name); 

    if(item.checked == true) { 
    $('.panel').append(
     '<div class="container">' 
     + '<p class="points" data-points="' + advert.numbers + '">' 
      + advert.numbers 
     + '</p>' 
     + '</div>' 
    ); 

    values += advert.numbers; 
    alert(values); 
    } 
} 
</script> 
+0

「item.dataset.name」とは何ですか?動作中のスニペットを入力してください – Weedoze

答えて

5

で入力ボックスに値を渡すことができますが、valuesに初期値を与えることはありませんので、それはだ、それはundefinedあるデフォルトの初期値、で始まりどのように

undefinedと任意の数値はundefinedを数値に強制的に強制変換できないため、NaNです。

ちょうどvar values;の代わりにvar values = 0;で開始してください。


このようなグローバルスコープでのコードの作成を避けることもお勧めします。グローバルネームスペースはです。が混雑しています(実際にはvar valuesは、idの要素の暗黙グローバルの恐怖のために既に存在するグローバルをシャドーイングしています)。スコープ関数内にすべてのコードをラップすることを検討してください。

(function() { 
    // ...your code here... 
})();