1

我有这个简单的代码。我需要将此 ul html 列表添加到“my-div”,但使用此代码我无法添加它。知道有什么问题吗?

可以使用jquery添加片段吗?

 this.renderMenuTop = function() {

        var menu, f, ul;
        menu = ['menu-actuality', 'menu-archive', 'menu-pdf', 'menu-pictures'];
        f = document.createDocumentFragment();
        ul = document.createElement('ul');
        for (var i = 0; i < menu.length; i++) {
            var li = document.createElement('li')
            li.id = menu[i];
            ul.appendChild(li);
        }     
        document.getElementById("my-div").appendChild(f);

        //$(this.elmMenuTop).append(f);
    }
4

4 回答 4

2

您永远不会向文档片段添加任何元素。for在你的循环之后添加这个:

f.appendChild(ul);

另一种选择是完全转储文档片段,并且只是:

document.getElementById("my-div").appendChild(ul);
//                                            ^^ Change from f to ul
于 2013-07-02T13:43:10.227 回答
1

您在哪里将列表添加到片段中?你需要添加

f.appendChild(ul);

在将其添加到 div 之前。或者,只需将列表直接添加到不带片段的 div 中。

于 2013-07-02T13:43:53.830 回答
1

你从来没有把任何东西放进去f。但是为什么你甚至有一个文档片段?

this.renderMenuTop = function() {
    var menu = ['menu-actuality', 'menu-archive', 'menu-pdf', 'menu-pictures'];
    var ul = document.createElement('ul');
    for (var i = 0; i < menu.length; i++) {
        var li = document.createElement('li')
        li.id = menu[i];
        ul.appendChild(li);
    }
    document.getElementById("my-div").appendChild(ul);

    //$(this.elmMenuTop).append(f);
};

如果您需要将它附加到两个不同的东西,文档片段将无济于事。

于 2013-07-02T13:45:18.033 回答
1

要回答问题的第二部分,jQuery 也可以:

this.renderMenuTop = function() {
    var menu = ['menu-actuality', 'menu-archive', 'menu-pdf', 'menu-pictures'];
    var $ul = $('<ul></ul>');
    for (var i = 0; i < menu.length; i++) {
        $ul.append('<li>' + menu[i] + '</li>');
    }
    $('#my-div').append($ul);
}
于 2013-07-02T13:54:27.340 回答