Modify ↓
Ticket #3713 (closed enhancement: fixed)
DOM manipulations on elements not in the DOM
| Reported by: | scott.gonzalez | Owned by: | john |
|---|---|---|---|
| Priority: | major | Milestone: | 1.3 |
| Component: | core | Version: | 1.2.6 |
| Keywords: | Cc: | john | |
| Blocking: | Blocked by: |
Description
The following works:
$('<div></div>').wrap('<div></div>');
The following fails:
$('<div></div>').appendTo('body').remove().wrap('<div></div>');
The former works because jQuery.clean wraps the created elements in a div, but the div is never removed. Wrap, insertBefore, etc. should probably be updated to work on elements not in the DOM.
If you think it's necessary, you might want to create another ticket to have jQuery.clean remove the extra wrappers it creates.
Change History
Please follow the bug reporting guidlines and use jsFiddle when providing test cases and demonstrations instead of pasting the code in the ticket.
Note: See
TracTickets for help on using
tickets.

Now it seems like this should be pretty easy. When doing the wrapping just skip the "append to parentNode" step. The element will still be disconnected from the DOM - but that's ok since that's what the intent was.