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/