Parse Int не выполняется при входе в цикл

Parse Int не выполнен. Не могу понять, почему возникает эта проблема.

function compute(){
    var totalDis = document.getElementById("totaldisplay");
    var htmlDis = "";
    htmlDis+ = "<table><tr><th>Student Name</th><th>Total Mark</th>";
    for(var row=0;row<names.length;row++)
    {
        var valMrk = document.querySelectorAll("#row" + row + ".stdMrk");
        var totalval = 0;
        for(var i=0;i<=5;i++)
        {
            totalval += parseInt(valMrk[i].Value);
            //alert("testing compute function");
        }   
        htmlDis += "<tr id='row" + i +"'><td style='border:1px solid black;'>"+names[row]+"</td><td style='border:1px solid black;'>"+totalval+"</td>";

    }
    htmlDis+ = "</table>";
    totalDis.innerHTML=htmlDis;
}

Согласно приведенному выше коду, функция перестает выполняться, когда функция входит в цикл, и останавливается на шаге parse int, что раздражает, потому что в другой форме она отлично работает с тем же кодом, всего с несколькими модификациями переменных.

Почему возникает эта проблема?

(Отредактировано в соответствии с ответом) это цикл, который генерирует поле ввода, и приведенные выше коды должны вычислять каждую строку, но после внесения изменений строка отображается, но не вычисляется, а отображается только 0 для каждой строки.

Вот коды для цикла, генерирующего текстовые поля.

for(j=0;j<names.length;j++)
    {
        html+ = "<tr><td style='border:1px solid grey;'>"+names[j]+"</td>";
        for(i = 0; i<num_of_ica; i++)
        {

            html+ = "<td><input type='text' class='stdMrk' placeholder='0' value='0' /></td>";
        }
        for(var k=1;k<=1;k++)//display project or final exams txt box
        {
            html+= "<td><input type='text' class='stdMrk' placeholder='0' value='0' /></td>";

        }

        html+ = "</tr>";
    }
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
0
55
1

Ответы 1

Очевидно, что valMrk.length меньше 5, поэтому в цикле он достигает несуществующего индекса и генерирует ошибку. измените его следующим образом (также убедитесь, что все значения могут быть проанализированы как int):

var valMrk = document.querySelectorAll("#row" + row + ".stdMrk");
    var totalval = 0;
    for(var i=0;i<valMrk.length;i++)
    {
        if (!isNaN(valMrk[i].Value)
        totalval += parseInt(valMrk[i].Value);
        //alert("testing compute function");
    }   

@KrishnaRamdin Я отредактировал свой ответ, пожалуйста, посмотрите

Ashkan Mobayen Khiabani 15.03.2019 22:45

когда я добавляю условие if в цикл, сама функция не выполняется.

Krishna Ramdin 15.03.2019 22:50

@KrishnaRamdin У меня была опечатка, которую я исправил, она должна быть sNaN не isNan

Ashkan Mobayen Khiabani 15.03.2019 22:52

он по-прежнему не добавляет числа и отображает 0 для каждой строки имен.. help... В основном у меня есть набор входных тегов, которые генерируются с помощью цикла for, тогда эта функция должна добавлять эти числа в соответствии с их именами и отображать добавлены цифры рядом с именами.

Krishna Ramdin 15.03.2019 23:04

Другие вопросы по теме