Modify ↓
Ticket #3270 (closed bug: worksforme)
jQuery().wrapInner() prepends instead of wrapping when html structure contains text nodes
| Reported by: | jtate | Owned by: | flesler |
|---|---|---|---|
| Priority: | major | Milestone: | 1.3 |
| Component: | core | Version: | 1.2.6 |
| Keywords: | Cc: | ||
| Blocking: | Blocked by: |
Description
For example:
jQuery('p').wrapInner('<strong/>');
would work fine. However
jQuery('p').wrapInner('<strong> </strong>')
will produce html output that looks like:
<p><strong> </strong>INNER TEXT</p>
when it meets a paragraph element with the Text contents of "INNER TEXT".
Attachments
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.


The problem is this loop in wrapAll:
It's trying to find the deepest point in the wrapping nodes to know where to append the nodes in the jQuery object. However, if any of the firstChild nodes in the wrapper are text nodes, it won't work right. I've attached a patch that tries to find the leftmost non-text node.