diff --git a/src/jqLite.js b/src/jqLite.js index 0db4c25103f4..08f67b2260a0 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -882,7 +882,7 @@ forEach({ }, wrap: function(element, wrapNode) { - wrapNode = jqLite(wrapNode)[0]; + wrapNode = jqLite(wrapNode).eq(0).clone()[0]; var parent = element.parentNode; if (parent) { parent.replaceChild(wrapNode, element); diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 38ec858f03e7..c6ae68326e1a 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -1542,6 +1542,15 @@ describe('jqLite', function() { text.wrap(""); expect(text.parent().text()).toEqual('ABC'); }); + it('should clone elements to be wrapped around target', function () { + var root = jqLite('
'); + var span = jqLite('A'); + jqLite(document.body).append(root); + + span.wrap(root); + expect(root.text()).toBe(''); + expect(span.parent().hasClass('sigil')).toBeTruthy(); + }); });