2010-06-07 1 views
0
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 스 니펫이 올바르게 작동하고 필요에 따라 작동하지만 해당 페이지 내에 항목이 표시되기 전에 "Undefined"응답이 표시됩니다. .innerHTML 호출과 관련이 있다고 가정합니다. 어떤 통찰력이라도 깊이 감사 할 것입니다.innerHTML 정의되지 않은 값을 생성하지만 올바른 데이터가 표시됩니다.

+0

을 "정의되지 않은"지고있는 라인? –

답변

2

Model은 초기화되지 않은 변수로 시작합니다 (undefined 포함). 루프에서 +=으로 문자열을 추가하므로 첫 번째 문자열에서 첫 번째 문자열은 초기 undefined 값에 "추가"됩니다. 이렇게하려면 자바 스크립트는 undefined을 문자열로 변환하고 새 문자열을 추가하여 "정의되지 않은"문자열로 끝나게합니다. 당신이 빈 문자열로 Model를 초기화하면

문제는 멀리 가야한다 :

Model = ''; 
+0

도움을 주셔서 감사합니다. 연기가 난 후에 같은 대답을 알아 냈습니다. – listenrightmeow