2010-08-24 28 views
6

Tôi có một trang HTML lớn. Một số phần tử (có thể là p, h1, div, v.v.) được gắn thẻ với lớp 'keep_me'. Tôi cần xóa tất cả các phần tử có trong trang KHÔNG CÓ lớp học này? Bất kỳ ý tưởng về làm thế nào để làm điều đó với jQuery?cách xóa các phần tử không có lớp được chỉ định

Tôi đã thử với một cái gì đó như thế, nhưng nó không hoạt động (rõ ràng;):

jQuery('#content *').remove(":not('[class=keep_me]')"); 

Trả lời

14

Chỉ cần làm:

jQuery('#content :not(.keep_me)').remove(); 

Xem documentation:

jQuery (': not (selector)')

Chọn tất cả các phần tử không khớp với bộ chọn đã cho.

+0

cổ vũ, không có ví dụ nào với lớp nên tôi cho rằng nó không hoạt động theo cách đó! –

+0

@vincentp: Bạn có thể sử dụng bất kỳ thứ gì là bộ chọn hợp lệ. –

5

Sử dụng not():

Các .not() phương pháp là thường nhanh hơn và có thể sẽ cung cấp cho bạn với các lựa chọn có thể đọc được nhiều hơn đẩy selectors phức tạp hoặc biến thành một: không() chọn lọc .

$('#content *').not('.keep_me').remove(); 
Các vấn đề liên quan