innerHTML дает неопределенные, но правильные данные видны - PullRequest
0 голосов
/ 08 июня 2010
    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 Ответ

2 голосов
/ 08 июня 2010

Model начинается с неинициализированной переменной, содержащей undefined. В цикле к нему добавляются строки с +=, поэтому в первой итерации первая строка «добавляется» к исходному значению undefined. Для этого javascript преобразует undefined в строку и добавляет к ней новую строку, так что в итоге получается строка, начинающаяся с «undefined».

Если вы инициализируете Model пустой строкой, проблема должна исчезнуть:

Model = '';
...