2 回答

TA貢獻1829條經驗 獲得超13個贊
您的setAmount
變量是來自 的字符串innerHTML
。
對兩個變量都使用parseInt()
:
total += parseInt(value[i]) * parseInt(setAmount);
更新
經過更深入的審查后,您發現了一些其他問題。
您的
setAmount
變量是""
,因為它沒有在 HTML 中設置。你正在循環
HoeveelheidArr
兩次你應該使用
value
而不是value[i]
我做了一個工作示例:
var HoeveelheidArr = [];
var total = 0;
const setAmount = document.getElementById("dynamicSet").innerHTML || 0;
function getData() {
HoeveelheidArr = [];
total = 0;
$('#resultTable .HoeveelheidField > input').each(function() {
HoeveelheidArr.push($(this).val() || 0);
});
console.log("HoeveelheidArr:", HoeveelheidArr);
for (var i = 0; i < HoeveelheidArr.length; i++) {
console.log("setAmount:", setAmount);
total += parseInt(HoeveelheidArr[i]) * parseInt(setAmount);
}
console.log("Total:", total);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>Aantal sets: <span id="dynamicSet">1</span></p>
<table id="resultTable" cellpadding="1" cellspacing="1" border="1">
<tr>
<th scope="col"></th>
<th scope="col">Hoeveelheid</th>
<th scope="col">Gewicht x KG</th>
</tr>
<tr>
<td>1</td>
<td class="HoeveelheidField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
<td class="GewichtField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
</tr>
<tr>
<td>2</td>
<td class="HoeveelheidField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
<td class="GewichtField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
</tr>
<tr>
<td>3</td>
<td class="HoeveelheidField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
<td class="GewichtField">
<INPUT TYPE="NUMBER" MIN="0" MAX="10" STEP="1">
</td>
</tr>
</table>
<button onclick="getData()">Test</button>

TA貢獻1863條經驗 獲得超2個贊
為什么你使用 value[i] value 不是一個數組,它只是一個數字。
console.log([value[i]);
value[1] 和 value[2] 未定義,這就是為什么你得到 NaN
如果你告訴我你想通過這段代碼做什么,我可以糾正它
- 2 回答
- 0 關注
- 120 瀏覽
添加回答
舉報