javascript - 我不知道为什么我总是得到 NaN

标签 javascript

我正在学习 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/

相关文章:

javascript - 无法从 jQuery 调用 Angular ng-click

javascript - 如何使用vue js获取元素?

javascript - 将一个 JSON 返回拆分为多个对象

Javascript 按钮消失

javascript - 为什么打印对象显示原型(prototype)链不符合预期

javascript - AngularJS 搜索不起作用

javascript - 过滤JavaScript中具有相同嵌套属性的对象数组

javascript - 在 web2py 中更新图像

javascript - Angular 6 密码验证不起作用

javascript - CasperJS - 如何打开链接数组中的所有链接