通过Javascript在IE9上添加li元素

时间:2011-10-18 21:00:15

标签: javascript internet-explorer

我试图通过javascript显示调查列表。 这是代码:

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。 :)

谢谢! 阿什利

2 个答案:

答案 0 :(得分:0)

也许你不打算嵌套两个<li>?请尝试省略<li>作业中的innerHTML标记:

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);
    }
}

答案 1 :(得分:0)

因为你要创造两次LI;一次使用createElement,一次使用内部html。