私はそれぞれの合計と課金を加算する機能を持っています。しかし、私はsum + charge
に警告し、私はNaNを取得します。なぜこうなった?数字ではありません - JavaScript
<script>
sum = 0;
charge = 0;
$('.panel').append(
'<div class="container" style=" font-size:14px; "> '+
'<table style="width:100%;" class="table" id="tables">'+
'<td class="name" >'+std.name+'</td>'+
'<td><p class="total" ><span class="min-total" name="total" id="total"></span></p></td>'+
'</table>'+
'</div>'
$('.panel').on('keyup','.quantity',function()
container = $(this).closest('div');
quantity = Number($(this).val());
price = Number($(this).closest('div').find('.price').data('price'));
container.find(".min-total span").text(quantity * price);
sum = 0;
$(".sum-total").each(function(){
sum = sum + Number($(this).text());
})
}
$('.charge').on('keyup','.charge',function(){
$('.charge span').text(Number($(this).val()));
charge = Number($(this).val());
alert(sum + charge);
</script>
問題を再現するために完全なコードを追加してください –
おそらく、 'Number()'はテキスト値を数値に変換していない可能性があります。しかし、より包括的な例がないと、どこで言い表すことは不可能です。これが発生した場合、値をゼロに設定するために、すべてのポイントで['isNaN()'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/isNaN)テストを追加できます。 – Blazemonger
フィールドの一方または両方には数値ではないものが含まれており、 'Number'で数値に変換することはできません。あなたはそれを修正するか、数値以外のすべてを置き換える前に、その上に 'Number'を呼び出します。考えられる原因は、あなたのフィールドにカンマを使用することです。 –