2011-10-18 42 views
0

我想通過javascript顯示調查列表。 下面是代碼:通過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); 
     } 
    } 

它完美的Chrome和Firefox,但它不會對IE9。 在Chrome和Firefox上,調查列表如下所示: •調查1 這就是我想要的。

然而,在IE9,它看起來像: • •調查1

的IE9怎麼會顯示兩個點? 我可以有一個簡單的解決方案嗎?我不想爲IE9和任何其他瀏覽器編寫兩個版本的Javascript。 :)

謝謝! Ashley

+0

您正在用'document.createElement(「li」);'創建新元素,然後通過'innerHTML'添加另一個'li'。這是問題嗎?只需將'className'添加到child並通過'innerHTML'追加錨點即可。 – JoshuaBoshi

回答

0

也許你不打算嵌套兩個<li> s?嘗試在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

因爲要創建的李兩次;一次使用createElement,一次使用內部html。

相關問題