通过Javascript在IE9上添加li元素

发布于 2024-12-10 15:24:18 字数 786 浏览 0 评论 0原文

我正在尝试通过 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。 :)

谢谢! 阿什利

I am trying to show a list of survey by javascript.
Here is the code:

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

It works perfectly on Chrome and Firefox, but it doesn't on IE9.
On Chrome and Firefox, the survey list look like this:
• Survey 1
That's what I want.

However, on IE9, it looks like:

• Survey 1

How come the IE9 shows two dots?
Can I have a easy solution for this? I don't want to write two versions of Javascript for IE9 and any other browsers. :)

Thanks!
Ashley

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

⒈起吃苦の倖褔 2024-12-17 15:24:18

也许您不打算嵌套两个

  • ?尝试在 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);
        }
    }
    

    Perhaps you are not intending to nest two <li>s? Try omitting the <li> tags in your innerHTML assignment:

    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);
        }
    }
    
    送舟行 2024-12-17 15:24:18

    因为你创建了 LI 两次;一次使用 createElement,一次在内部 html 中。

    Because you're creating the LI twice; once with createElement and once in the inner html.

    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文