Opened 13 years ago
Closed 13 years ago
#5799 closed bug (fixed)
wrapInner(function): inconsistent with wrapInner(html), callback scope is broken
Reported by: | ajpiano | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 1.4.1 |
Component: | core | Version: | 1.4 |
Keywords: | Cc: | ||
Blocked by: | Blocking: |
Description
wrapInner(function) does not have the same effect on an element as wrapInner(html), etc. Each of the first-child elements - including textnodess - gets wrapped individually, rather than, as intended, wrapping the contents into a single element.
As, wrapInner is a shortcut to $(elem).contents().wrapAll(fn), the contents get wrapped, one-by-one, by the beginning of $.fn.wrapAll(); This leads to the wrapInner(fn) callback being executed once for every child element, with the child element as 'this'.
<h3>foo<span>bar</span><div>baz</div>bam</h3> <br/> <h3>foo<span>bar</span><div>baz</div>bam</h3>
$("h3:first").wrapInner(function(i) {
console.log(this); return "<strong style='display:block;border:1px solid #000'/>";
}); $("h3:eq(1)").wrapInner("<strong style='display:block;border:1px solid #000'/>");
Attachments (2)
Change History (3)
Changed 13 years ago by
Attachment: | wrapInner.html added |
---|
comment:1 Changed 13 years ago by
comment:2 Changed 13 years ago by
Component: | unfilled → core |
---|---|
Resolution: | → fixed |
Status: | new → closed |
the attachment is the same file twice, i accidentally double clicked and it uploaded two copies.