Có một số ma thuật jquery mà sẽ cho phép tôi làm như sau:tạm thời xóa và sau đó lắp lại thành phần DOM?
[0- xác định một số yếu tố trong HTML (ví dụ, một đánh dấu hộp kiểm)]
1- cập nhật phần tử DOM của nó bằng cách thiết lập một các thuộc tính của nó sử dụng .attr() (ví dụ, bằng cách thiết lập của nó "kiểm tra" thuộc tính sử dụng .attr ('kiểm tra', true))
2- tạm thời loại bỏ yếu tố đó từ DOM
3 lắp lại phần tử gốc vào DOM, trong khi vẫn giữ lại tất cả s (nghĩa là, để nó được kiểm tra vì nó đã ở cuối bước 1-- KHÔNG thích nó khi được định nghĩa ban đầu trong HTML)
Lý do tại sao tôi quan tâm đến việc loại bỏ các phần tử này khỏi DOM (chứ không phải hơn là ẩn chúng) là tôi đã nhận thấy rằng nó có vẻ cải thiện hiệu suất một chút. Trang của tôi có ba "trạng thái" khác nhau và chỉ cần một phần ba tổng số phần tử DOM trong bất kỳ trạng thái đã cho nào. [Tôi muốn giữ nó như là một trang duy nhất với các quốc gia khác nhau chứ không phải là phá vỡ nó thành ba trang riêng biệt.]
Cho đến bây giờ tôi đã loại bỏ và reinserting yếu tố vào DOM bằng cách lưu trữ trong một var giá trị của
$("#myElement").html()
và sau đó xóa nó, nhưng bây giờ tôi nhận thấy rằng khi chèn lại HTML đó vào DOM, các thay đổi được thực hiện [ở bước 1] đã được "hoàn tác".
Có cách nào để thực hiện việc này - để tạm thời xóa nội dung không cần thiết khỏi DOM theo cách bảo toàn tất cả các thuộc tính của nó để cài đặt lại sau này không?
nhờ cho bất kỳ cái nhìn sâu sắc,
lara
@Luca - tốt thôi, khi chúng được chèn lại, chúng sẽ giữ nguyên trạng thái trước đó, vì OP muốn –
@K Prime - rất cám ơn, chính xác những gì tôi đang tìm kiếm! Nifty đi qua của đối số 'true' để sao chép() thậm chí giữ các trình xử lý sự kiện xung quanh để reinsertion. Tuyệt quá! – laramichaels
là một phương thức bổ sung ... phương thức .show() và .hide() cho đối tượng jQuery sẽ đặt thuộc tính hiển thị là thích hợp. – Tracker1