我正在学习 JavaScript。我做了一些没有问题的代码,但是当我想编写新的代码来允许我计算表的调用时,我不断得到 NaN,我不知道为什么。
这是我的 JS 代码
var table = document.getElementById("table"), sumVal = 0;
for(var i = 1; i < table.rows.length; i++)
{
sumVal = sumVal + parseInt(table.rows[i].cells[0].innerHTML);
}
console.log(sumVal);
document.getElementById("val").innerHTML = sumVal;
这是我的 table
<table id="table" class="table table-bordered">
<thead>
<tr>
<th scope="col">Code</th>
<th scope="col">Prenome</th>
<th scope="col">Nom</th>
<th scope="col">Frais de inscription</th>
<th scope="col">Le rest</th>
<th scope="col">Date de paiment</th>
<th scope="col">dure de paiment</th>
</tr>
</thead>
<tfoot>
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th id="val"></th>
<th></th>
<th></th>
</tr>
</tfoot>
<tbody>
<tr>
@foreach($students as $student)
<th scope="row">{{$student->id}}</th>
<td>{{$student->student->student_name}}</td>
<td>{{$student->student->student_last_name}}</td>
<td>{{$student->frais_inscription}}</td>
<td>{{$student->Rfrais_inscription}}</td>
<td width="140" id="xd">{{$student->payment_date->Dfrais_inscription}}</td>
<td >{{$student->Afrais_inscription}} Mois</td>
<td ></td>
</tr>
@endforeach
</tbody>
</table>
我尝试了另一种方法只是为了知道我缺少什么,而且效果很好;我得到了结果。
这是代码:
var table = document.getElementById("table"), sumVal = 0;
console.log(parseInt(table.rows[1].cells[4].innerHTML) + parseInt(table.rows[2].cells[4].innerHTML));
最佳答案
您需要考虑何时<tr>
的innerHTML 为空。 parseInt("")
将返回NaN
并且您不能增加 NaN
所以结果就是 NaN
.
见下文。
var table = document.getElementById("table"), sumVal = 0;
for(var i = 1; i < table.rows.length; i++)
{
if (table.rows[i].cells[0].innerHTML !== ""){
sumVal +=parseInt(table.rows[i].cells[0].innerHTML);
}
console.log(sumVal);
document.getElementById("val").innerHTML = sumVal;
关于javascript - 我不知道为什么我总是得到 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59056695/