innerHTML产生未定义但正确的数据是可见的

时间:2010-06-07 21:22:10

标签: 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调用有关。任何见解都将深受赞赏。

1 个答案:

答案 0 :(得分:2)

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

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

Model = '';