javascript - innerHTML 产生未定义,但正确的数据可见

标签 javascript undefined innerhtml

    var Model,node;
    document.getElementById('sedans').innerHTML='';
    var thismodelabbr,prevmodelabbr;
    for(var j=0; j<xmlDoc.getElementsByTagName('data').length; j++){
            node = xmlDoc.getElementsByTagName('data')[j];
            thismodelabbr=node.getAttribute('model');
            if(prevmodelabbr!=thismodelabbr){
                Model+='<a href="">'+ node.getAttribute('model')+'</a>';
            }
            prevmodelabbr=thismodelabbr;
            document.getElementById('sedans').innerHTML=Model;
    }

上面的 JavaScript 代码片段可以根据需要正常工作,但是在条目显示在其各自的页面中之前,我收到了“未定义”响应。我假设它与 .innerHTML 调用有关。任何见解将不胜感激。

最佳答案

Model 最初是一个未初始化的变量,包含 undefined。在循环中,您使用 += 向其附加字符串,因此在第一次迭代中,第一个字符串被“附加”到初始 undefined 值。为此,javascript 将 undefined 转换为字符串并将新字符串附加到其中,这样您最终会得到一个以“undefined”开头的字符串。

如果您使用空字符串初始化Model,问题就会消失:

Model = '';

关于javascript - innerHTML 产生未定义,但正确的数据可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2993275/

相关文章:

javascript - var 未在 Angular Testing 中定义

JQuery:检查页面上的任何下拉列表当前是否选择了特定值?

javascript - 单击按钮创建一个新的进度条

javascript - 使用 ImmutableJS Record 创建具有不同属性的子类

reactjs - 为什么我的 react 表说列未定义?

jquery - 未定义的属性名称(角色),eclipse

JavaScript - 当这些值相同时,如何使用 print 函数输出存储在数组中的 2 个值?

javascript - document.getElementById 作为 xhtml 中的变量

javascript - 如何检测 "stylized"文本?

javascript - 如何在JavaScript中将PHP的explode (';' ,$s,3) 与 s.split (';' ,3) 匹配?