我有一个包含三个值的数组,另外1个值都从表单中获取。
我是tryint,将头号与另一个相乘并将其相加。
这是我尝试过的:
HTML:
<p>Aantal sets: <span id="dynamicSet"></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>
和我的JS
var total = 0;
const setAmount = document.getElementById("dynamicSet").innerHTML;
function getData(){
$('#resultTable .HoeveelheidField > input ').each(function() {
HoeveelheidArr.push($(this).val());
});
console.log(HoeveelheidArr);
HoeveelheidArr.forEach(function getReps (value) {
console.log(value);
for(var i = 0; i < HoeveelheidArr.length; i++){
total += value[i] * setAmount;
}
});
console.log(total);
}
但是,正如您在图片中看到的那样,我一直从控制台返回“ Not a Number”。你看到我在做什么吗?
控制台为您提供了有关错误之处的重要线索:Not a Number
。这意味着您正在尝试对非数字内容进行数学运算。通常,这是因为您正在使用字符串而不是实现它。
在尝试进行数学运算之前,将value[i]
强制为整数,将parseInt(value[i])
强制为整数,如果将十进制/浮点数强制为parseFloat(value[i])
,则为强制数字。
调试时,您可以在该控制台中执行typeof value[i]
以查看类型是什么。