2011-06-09 26 views
2

我有一個頁面,裏面有一個空的DIV,我想變成一個手風琴。我從文檔中瞭解到節標題需要是H3標記,而子元素需要是P或DIV。也許我沒有把握好。我有這個代碼在頁面加載時運行。手風琴已成功創建,但它沒有單個部分,而是具有n個子項目,似乎是爲每個其他子項目創建一個標題。 elements變量是從ajax調用返回的映射(字典),其中包含需要在手風琴中顯示的元素的標題和URL。把孩子插入到一個DIV中用於jQuery UI accordion

var markup = ""; 

markup += "<h3><a href='#'>Controls</a></h3>"; 

$.each(elements, function (title, url) { 
    markup += "<div><a href='" + url + "'>" + title + "</a></div>"; 
}); 

$("#accordion").append(markup); 
$("#accordion").accordion(); 

所以基本上我期待在年底這個標記結構:

<h3><a href='#'>Controls</a></h3> 
<div><a href='xxx'>Foo</a></div> 
<div><a href='yyy'>Bar</a></div> 
... etc 

我不知道我在做什麼錯在這裏。我在一臺corp筆記本電腦上無法安裝firefox或chrome,因此我無法查看動態DOM以查看結構是否正確創建或內容。

回答

0

也許您在尋找add()而不是append()

+0

不,現在嘗試'add()',手風琴甚至沒有創建。我猜'add()'不是爲了向現有的DOM元素添加子元素嗎? – sakuntala 2011-06-09 18:55:15

+0

add()添加同級,append()添加子級。如果你問我,這有點違反直覺。 – m2o 2011-06-09 18:57:33

+2

實際上,add()將一個元素添加到內存中匹配元素的集合中,並且不會更改DOM。 Append()通過添加子元素來更改DOM結構。 – skajfes 2011-06-10 22:28:32

0

如果對任何人都有用,標題部分下的元素需要包含在另一個元素中,例如DIV或P.一旦我這樣做了,部分和項目就會被正確排列。

謝謝!