Как остановить получение ошибки "Невозможно получить свойство childNodes с неопределенной или нулевой ссылкой?

У меня есть скрипт, где я перебираю xml.responseXML и помещаю childNodes[0].nodeValue в тело таблицы. Он работает отлично, за исключением случаев, когда в xml.responseXML нет результатов.

Результаты представляют собой комментарии о наблюдении, и могут быть моменты, когда нет комментариев. Так что я хочу, если нет комментариев, чтобы не строить тело таблицы и не выдавать ошибку "Невозможно получить свойство childNodes с неопределенной или нулевой ссылкой.

Я попытался поместить это в оператор if, где, если childNodes = "", тогда больше ничего не делать для построения моего тела таблицы, но мне не повезло. На данный момент каждый раз, когда вы открываете наблюдение, в котором нет комментариев, браузер выдает ошибку, если у него есть комментарии, значит, он работает отлично. Любые предложения или помощь будут оценены, как я застрял.

function viewComments(xml) {            
        var i;
        var xmlDoc = xml.responseXML;
        var tbody = "";
        var x = xmlDoc.getElementsByTagName("allComments");        

        for (i = 0; i < x.length; i++) {
            tbody += "<tr><td>" +
                x[i].getElementsByTagName("COMMENT")[0].childNodes[0].nodeValue +
                "</td><td>" +
                x[i].getElementsByTagName("DATE_COMMENT_UPDATED")[0].childNodes[0].nodeValue +
                "</td><td>" +
                x[i].getElementsByTagName("COMMENT_ADDED_BY")[0].childNodes[0].nodeValue +
                "</td ></tr >";
        }
        $("#COMMENTS tbody").html(tbody);
        $("#COMMENTS").trigger("update");
    }
</script>

 for (i = 0; i < x.length; i++) {
            var el = x[i].getElementsByTagName("COMMENT");
            if (el.length) {
                tbody += "<tr><td>" +
                    x[i].getElementsByTagName("COMMENT")[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    x[i].getElementsByTagName("DATE_COMMENT_UPDATED")[0].childNodes[0].nodeValue +
                    "</td><td>" +
                    x[i].getElementsByTagName("COMMENT_ADDED_BY")[0].childNodes[0].nodeValue +
                    "</td ></tr >";
            }
        }

0 ответов

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