diff --git a/src/jqLite.js b/src/jqLite.js index e882407be63f..1f61c80999d0 100644 --- a/src/jqLite.js +++ b/src/jqLite.js @@ -979,12 +979,15 @@ forEach({ after: function(element, newElement) { var index = element, parent = element.parentNode; - newElement = new JQLite(newElement); - for (var i = 0, ii = newElement.length; i < ii; i++) { - var node = newElement[i]; - parent.insertBefore(node, index.nextSibling); - index = node; + if (parent) { + newElement = new JQLite(newElement); + + for (var i = 0, ii = newElement.length; i < ii; i++) { + var node = newElement[i]; + parent.insertBefore(node, index.nextSibling); + index = node; + } } }, diff --git a/test/jqLiteSpec.js b/test/jqLiteSpec.js index 886ca7c2cd42..5333b029a142 100644 --- a/test/jqLiteSpec.js +++ b/test/jqLiteSpec.js @@ -2182,6 +2182,14 @@ describe('jqLite', function() { span.after('abc'); expect(root.html().toLowerCase()).toEqual('abc'); }); + + + it('should not throw when the element has no parent', function() { + var span = jqLite(''); + expect(function() { span.after('abc'); }).not.toThrow(); + expect(span.length).toBe(1); + expect(span[0].outerHTML).toBe(''); + }); });