2011-10-18 4 views
0

자바 스크립트로 설문 조사 목록을 표시하려고합니다. 다음은 코드입니다 :Javascript로 IE9에 li 요소 추가

function ParseSurveys(surveyList) { 
     var sideBarSurveyList = document.getElementById('sliding-navigation'); 

     for (var m = 0; m < surveyList.length; m++) { 
      var child = document.createElement("li"); 
      child.innerHTML += "<li class='sliding-element'><a href='javascript:sendSurvey(" + (m + 1) + ")'>Survey " + surveyList[m].Id + "</a></li>"; 
      sideBarSurveyList.insertBefore(child, sideBarSurveyList.lastChild); 
     } 
    } 

그것은 크롬과 파이어 폭스에서 완벽하게 작동하지만, IE9에 있지 않습니다. Chrome 및 Firefox의 설문 목록은 다음과 같습니다. • 설문 조사 1 그게 내가 원하는 것입니다. IE9는 두 개의 점을 표시하는 방법 올

조사 1 • • :

그러나, IE9에, 그것은처럼 보이는? 간편한 해결책이 있습니까? IE9 및 다른 브라우저 용 Javascript의 두 가지 버전을 작성하고 싶지 않습니다. :)

고마워요! 애슐리

+0

당신은'document.createElement ("li");'로 새로운 요소를 만들고 나서'innerHTML'을 통해 또 다른'li'을 추가하고 있습니다. 이게 문제 야? 자식 클래스에'className'을 추가하고'innerHTML'을 통해 단지 앵커를 추가하십시오. – JoshuaBoshi

답변

0

아마 <li> 개의 두 개를 중첩하지 않으실 것입니까? 당신의 innerHTML 과제에 <li> 태그를 생략하십시오 :

function ParseSurveys(surveyList) { 
    var sideBarSurveyList = document.getElementById('sliding-navigation'); 

    for (var m = 0; m < surveyList.length; m++) { 
     var child = document.createElement("li"); 
     child.className = 'sliding-element'; 
     child.innerHTML += "<a href='javascript:sendSurvey(" + (m + 1) + ")'>Survey " + surveyList[m].Id + "</a>"; 
     sideBarSurveyList.insertBefore(child, sideBarSurveyList.lastChild); 
    } 
} 
0

당신은 LI를 두 번 만드는 때문에; 한 번은 createElement를 사용하고 한 번은 내부 html을 사용합니다.