我有一个列表,我只想从中删除所有的子节点。什么是最有效的方式使用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