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('');
+ });
});