我正在学习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 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));
答案 0 :(得分:1)
您需要考虑<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;
答案 1 :(得分:0)
填写一些数字,然后将您的const
更改为std::mutex
。
建议您出于安全考虑使用innerText
。
Console.log()用于常规调试。
纯HTML可以正常工作。
我不确定您如何填写数字,并且在填写之前和之后分别执行计算部分。
如果它总是在表填充后执行。如果textContent
为textContent
$student->frais_inscription
empty