Commit a619cb30 authored by Richard Gibson's avatar Richard Gibson Committed by Dave Methvin

Fix #11370: .siblings() shouldn't throw exception on a detached element

parent 7226cf28
...@@ -204,7 +204,7 @@ jQuery.each({ ...@@ -204,7 +204,7 @@ jQuery.each({
return jQuery.dir( elem, "previousSibling", until ); return jQuery.dir( elem, "previousSibling", until );
}, },
siblings: function( elem ) { siblings: function( elem ) {
return jQuery.sibling( elem.parentNode.firstChild, elem ); return jQuery.sibling( ( elem.parentNode || {} ).firstChild, elem );
}, },
children: function( elem ) { children: function( elem ) {
return jQuery.sibling( elem.firstChild ); return jQuery.sibling( elem.firstChild );
......
...@@ -414,7 +414,7 @@ test("andSelf()", function() { ...@@ -414,7 +414,7 @@ test("andSelf()", function() {
}); });
test("siblings([String])", function() { test("siblings([String])", function() {
expect(6); expect(7);
deepEqual( jQuery("#en").siblings().get(), q("sndp", "sap"), "Check for siblings" ); deepEqual( jQuery("#en").siblings().get(), q("sndp", "sap"), "Check for siblings" );
deepEqual( jQuery("#sndp").siblings(":has(code)").get(), q("sap"), "Check for filtered siblings (has code child element)" ); deepEqual( jQuery("#sndp").siblings(":has(code)").get(), q("sap"), "Check for filtered siblings (has code child element)" );
deepEqual( jQuery("#sndp").siblings(":has(a)").get(), q("en", "sap"), "Check for filtered siblings (has anchor child element)" ); deepEqual( jQuery("#sndp").siblings(":has(a)").get(), q("en", "sap"), "Check for filtered siblings (has anchor child element)" );
...@@ -422,6 +422,7 @@ test("siblings([String])", function() { ...@@ -422,6 +422,7 @@ test("siblings([String])", function() {
var set = q("sndp", "en", "sap"); var set = q("sndp", "en", "sap");
deepEqual( jQuery("#en, #sndp").siblings().get(), set, "Check for unique results from siblings" ); deepEqual( jQuery("#en, #sndp").siblings().get(), set, "Check for unique results from siblings" );
deepEqual( jQuery("#option5a").siblings("option[data-attr]").get(), q("option5c"), "Has attribute selector in siblings (#9261)" ); deepEqual( jQuery("#option5a").siblings("option[data-attr]").get(), q("option5c"), "Has attribute selector in siblings (#9261)" );
equal( jQuery("<a/>").siblings().length, 0, "Detached elements have no siblings (#11370)" );
}); });
test("children([String])", function() { test("children([String])", function() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment