Tôi có một danh sách, tôi chỉ muốn xóa tất cả các nút con khỏi nó. Cách hiệu quả nhất khi sử dụng jquery là gì? Đây là những gì tôi có:Xóa tất cả các nút con khỏi cha/mẹ?
<ul id='foo'>
<li>a</li>
<li>b</li>
</ul>
var thelist = document.getElementById("foo");
while (thelist.hasChildNodes()){
thelist.removeChild(thelist.lastChild);
}
có lối tắt thay vì xóa từng mục, từng lần một?
----------- Chỉnh sửa ----------------
Mỗi phần tử danh sách có một số dữ liệu kèm theo và một trình xử lý nhấp chuột như thế này:
$('#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());
}
cuối cùng tôi có thể thêm các nút cho mỗi mục trong danh sách quá - vì vậy nó trông giống như rỗng() là con đường để đi, để đảm bảo không có rò rỉ bộ nhớ?
Hiệu quả theo thuật ngữ nào? Hiệu suất, khả năng đọc? – Gumbo
Thêm vào câu hỏi của @ Gumbo, mức độ quan tâm của bộ nhớ là bao nhiêu? Những mục này có xử lý sự kiện bị ràng buộc không? –
Với câu trả lời được cập nhật, có '.empty()' sẽ là cách để đi, để xóa dữ liệu ra khỏi '$ .cache' mà' element.data ('lớp', cấp mới()); 'thêm vào –