我在名为menuElm的javascript中有一个数组,其中有<ul>个元素:

<ul id="1"></ul>
<ul id="2"></ul>
<ul id="3"></ul>


我有一个包含以下内容的HTML页面:

<ul id="menu">
    <li class="menu-item"></li>
    <li class="menu-item"></li>
    <li class="menu-item"></li>
</ul>


我想将menuElm的元素添加到HTML页面中,所以它看起来像这样:

<ul id="menu">
    <li class="menu-item">
         <ul id="1"></ul>
    </li>
    <li class="menu-item">
         <ul id="2"></ul>
    </li>
    <li class="menu-item">
         <ul id="3"></ul>
    </li>
</ul>


我尝试了以下操作,但是<ul>元素不会显示在页面或代码中:

function CreateMenu() {
    var menuElm;
    var k = 0;

    menuElm = createElm("ul");
    menuElm.id = ++k;

    for (var i = 0; i < menuElm.length; ++i) {
        document.getElementsByClassName("menu-item")[i].appendChild(menuElm[i]);
    }
}


我是JavaScript新手,我在做什么错?

最佳答案

menuElm.length



ul元素没有长度,因此您要从0循环到0,即0次迭代。




menuElm = createElm("ul");



此功能未定义。您需要document.createElement('ul');




menuElm = createElm("ul");
menuElm.id = ++k;



您似乎正在创建一个列表项,然后更改其ID并将其附加多次。

每次循环时都需要一个新的列表项。




appendChild(menuElm[i]);



您之前一直将menuElm视为元素。它不是数组,在这里[i]毫无意义。

关于javascript - 将数组追加到javascript中的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40807026/

10-12 12:59
查看更多