我有一個列表,我只想從中刪除所有的子節點。什麼是最有效的方式使用jQuery?這是我的:從父級刪除所有子節點?
<ul id='foo'>
<li>a</li>
<li>b</li>
</ul>
var thelist = document.getElementById("foo");
while (thelist.hasChildNodes()){
thelist.removeChild(thelist.lastChild);
}
是否有一個快捷方式,而不是刪除每個項目,一次?
-----------編輯----------------
每個列表元素附加了一些數據,和一個點擊處理程序像這樣:
$('#foo').delegate('li', 'click', function() {
alert('hi!');
});
// adds element to the list at runtime
function addListElement() {
var element = $('<li>hi</hi>');
element.data('grade', new Grade());
}
最後我想補充每個列表項的按鈕 - 所以它看起來像空的()是去,以確保不存在內存泄漏的方式嗎?
高效的條款?性能,可讀性? – Gumbo 2010-06-15 11:53:29
加上@Gumbo的問題,還有多少關注是記憶?這些項目是否綁定了事件處理程序? – 2010-06-15 11:54:34
考慮到更新後的答案,是'.empty()'將是要去的方法,清除'$ .cache'中的數據:'element.data('grade',new Grade());'added in – 2010-06-15 12:02:07