如何停止获取错误“无法获取未定义或空引用的属性'childNodes'?

时间:2017-07-27 14:12:29

标签: javascript xml xml-parsing child-nodes nodevalue

我有一个脚本,我循环遍历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 个答案:

没有答案