在jquery中以递归方式构建UL / LI的问题

时间:2011-06-11 08:13:52

标签: javascript jquery

我正在尝试从javascript中的interal对象构建一个LI / UL元素树。使顶级元素工作正常,但然后recursivley构建子元素似乎导致我的问题。

下面代码中的

#DynaTreeUL元素,它是我树的根。 tv是我的对象代表树 - 我实际上已经将子代码创建代码简化为更简单的东西,以使其工作。您还可以看到注释掉的行,我尝试了不同的方法。在任何一种情况下,我都没有错误,但我从未看到子元素附加到第一级对象。

     for(i = 0; i < tv.getSize();i++){
        var t = tv.getTaskAt(i);
         var newul = $("<ul>" + t.TaskName +  "(" + t.GUID + ")</ul>");
         makeChildren(newul);
         $("#DynaTree").append(newul);
     }

     function makeChildren(el){
         var randomnumber=Math.floor(Math.random()*11);
         console.log("Making Children Elements " + randomnumber);
         for(var i = 0; i < randomnumber;i++){
             var newElement = $("<ul>New Element</ul");
                             /************************
                              Neither one of these methods works!
                             ***********************/
             //$("#DynaTree", el).append(newElement);
             el.append(newElement);
         }

    }

`

感觉我错过了一些明显的东西。任何帮助非常感谢。

-ace

3 个答案:

答案 0 :(得分:1)

感谢Andrew指出UL链接没有关闭

答案 1 :(得分:0)

在创建新元素结束时,您错过了结束>,应该阅读...

`var newElement = $("<ul>New Element</ul>");`

答案 2 :(得分:0)

如果我理解正确,你试图在运行时创建这些ul / li。您可以使用jquery模板插件。有关详情,请访问http://api.jquery.com/jQuery.template/