2010-05-16 43 views
1

所以,我有以下的divjQuery的追加()不附加預期

<div id="object_list"> 

我想要的清單和項目追加到它。於是我運行下面的jQuery

 $("#object_list").empty(); 
     $("#object_list").append('<ul'); 
     $("#object_list").append(list.contents()); 
     $("#object_list").append('</ul>'); 

代碼運行後,#object_list看起來像這樣

<div id="object_list"> 
    <ul></ul> 
    ...list.contents() elements 
</div> 
即使經過調試

,如果我做的是另$("#object_list").append('<ul>');我得到的是</ul>後加入<ul>。爲什麼jQuery不會追加到list.contents()之後的html,而是在它之前?

+0

也許並不如預期,但作爲記錄。 jQuery附加一個完整的元素,而不是文字的HTML。 – harpo 2010-05-16 02:56:08

+0

這兩個答案都有效,但只能標記一個。 – KallDrexx 2010-05-16 03:09:12

回答

1

追加不追加簡單的標籤,它實際上追加要素。在你的情況下,你想追加列表項到一個無序列表中,並將其附加到你的div中。

做:

$('<ul>').appendTo('#object_list').append(list.contents()); 
3

問題在於,當您有意將項目附加到列表本身時,您會繼續追加到「object_list」。 (順便說一句,你是不是要麼關閉您的UL實例標籤)

嘗試是這樣的:

var $list = $("<ul></ul>"); 
$list.append("<li>Something 1</li>"); 
$list.append("<li>Something 2</li>"); 
$list.append("<li>Something 3</li>"); 

$("#object_list").append($list);