Làm cách nào để hủy phần tử DOM bằng jQuery?


Câu trả lời:


194

$target.remove();những gì bạn đang tìm kiếm?

https://api.jquery.com/remove/


74
Tất nhiên điều này chỉ loại bỏ nó khỏi tài liệu có thể nhìn thấy. Nếu có các tham chiếu khác đến nút từ JavaScript, chẳng hạn như chính biến mục tiêu $, thì đối tượng sẽ thoát khỏi trình thu gom rác ngay bây giờ. Nếu bạn muốn DESTROY nó, bạn cũng phải mất tất cả các tham chiếu đến nó. Tôi không chắc chắn lý do tại sao bạn muốn PHÁT HIỆN một phần tử DOM. Có lẽ bạn chỉ ghét $ mục tiêu. Mục tiêu $ kém, nó đã làm gì với bạn?
bobince

52
$ mục tiêu là tốt khi anh ấy một mình, nhưng anh ấy khó chịu khi anh ấy ở khoảng 100.000 người bạn nhân bản của mình.
Sebastián Grignoli

2
Sẽ .empty()có tác dụng tương tự?
Saurabh Nanda

3
@SaurabhNanda - Làm trống sẽ xóa nội dung của đối tượng, nhưng không xóa (hoặc hủy) chính đối tượng.
Lu-ca

46

Nếu bạn muốn tiêu diệt hoàn toàn mục tiêu, bạn có một vài lựa chọn. Trước tiên, bạn có thể xóa đối tượng khỏi DOM như được mô tả ở trên ...

console.log($target);   // jQuery object
$target.remove();       // remove target from the DOM
console.log($target);   // $target still exists

Tùy chọn 1 - Sau đó thay thế mục tiêu bằng một đối tượng jQuery trống (jQuery 1.4+)

$target = $();
console.log($target);   // empty jQuery object

Tùy chọn 2 - Hoặc xóa toàn bộ thuộc tính (sẽ gây ra lỗi nếu bạn tham chiếu nó ở nơi khác)

delete $target;
console.log($target);   // error: $target is not defined

Đọc thêm : thông tin về đối tượng jQuery trốngthông tin về xóa


3
Tại sao delete $targetsẽ không hoạt động: perfectionkills.com/under Hiểu-delete/#misconceptions Tại sao không $target=nullhoạt động?
LeeGee

@LeeGee - Bạn có thể vui lòng tóm tắt bài đăng của mình để giải thích lý do tại sao xóa sẽ không hoạt động cho các đối tượng jQuery không? Tại sao nó xuất hiện để hoạt động khi chúng ta nhìn vào console.log ($ target) ở cuối? Cảm ơn bạn.
Lu-ca

Tôi không thể giải thích nó tốt hơn bài báo được trích dẫn, mà tôi thấy rất chi tiết.
LeeGee

Đối với bản ghi, điều này hoạt động trong bảng điều khiển vì bảng điều khiển đánh giá JS trong phạm vi của eval, cho phép xóa. Các biến trong phạm vi "tự nhiên" sẽ không thể xóa được. Sử dụng $target=nullthay thế. Nó nhanh hơn và không gây rối với tối ưu hóa trình duyệt nội bộ.
uốn cong

1
Xóa là tốt. Điều đó chỉ có nghĩa là khối đó sẽ không được tối ưu hóa bởi công cụ JS. Trong hầu hết các trường hợp, điều đó là hoàn toàn không liên quan. Khi nó trở thành một vấn đề, sau đó bạn tìm cách sử dụng xóa. Không phải trước đây.
Charlie Martin

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.