2011-06-11 43 views
0

我試圖從javascript中的interal對象構建LI/UL元素的樹。使頂層元素工作正常,但然後recursivley構建子元素似乎會導致我的問題。問題recursivley在jQuery中構建UL/LI

在下面的代碼中#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

+2

'ul'在makeChildren中沒有關閉,可能是這個問題? – Flash 2011-06-11 08:21:04

+0

我現在感覺非常油滑。感謝您指出這一點 – phatmanace 2011-06-11 08:25:22

+1

@Andrew是對的,您錯過了創建孩子的''標籤中的右括號。這導致它創建一個沒有內容的'

    '節點。在旁註中,您發佈的代碼中沒有[遞歸](http://en.wikipedia.org/wiki/Recursion_%28computer_science%29)。遞歸涉及一個調用自己的函數。 – 2011-06-11 08:49:47

回答

0

你缺少收盤>創造新元素的結束,應該讀...

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

感謝Andrew指出了UL鏈接不封閉