mirror of
https://github.com/jquery/jquery.git
synced 2025-01-10 18:24:24 +00:00
Fail silently if closest is somehow called on a document. Fixes #10726.
This commit is contained in:
parent
3478cbb4d4
commit
17a26f5bd9
@ -92,16 +92,13 @@ jQuery.fn.extend({
|
||||
for ( ; i < l; i++ ) {
|
||||
cur = this[i];
|
||||
|
||||
while ( cur ) {
|
||||
while ( cur && cur.ownerDocument && cur !== context && cur.nodeType !== 11 ) {
|
||||
if ( pos ? pos.index(cur) > -1 : jQuery.find.matchesSelector(cur, selectors) ) {
|
||||
ret.push( cur );
|
||||
break;
|
||||
|
||||
} else {
|
||||
cur = cur.parentNode;
|
||||
if ( !cur || !cur.ownerDocument || cur === context || cur.nodeType === 11 ) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -275,7 +275,8 @@ test("filter() with positional selectors", function() {
|
||||
});
|
||||
|
||||
test("closest()", function() {
|
||||
expect(13);
|
||||
expect( 14 );
|
||||
|
||||
deepEqual( jQuery("body").closest("body").get(), q("body"), "closest(body)" );
|
||||
deepEqual( jQuery("body").closest("html").get(), q("html"), "closest(html)" );
|
||||
deepEqual( jQuery("body").closest("div").get(), [], "closest(div)" );
|
||||
@ -299,6 +300,8 @@ test("closest()", function() {
|
||||
// Bug #7369
|
||||
equal( jQuery("<div foo='bar'></div>").closest("[foo]").length, 1, "Disconnected nodes with attribute selector" );
|
||||
equal( jQuery("<div>text</div>").closest("[lang]").length, 0, "Disconnected nodes with text and non-existent attribute selector" );
|
||||
|
||||
ok( !jQuery(document).closest("#foo").length, "Calling closest on a document fails silently" );
|
||||
});
|
||||
|
||||
test("closest(jQuery)", function() {
|
||||
|
Loading…
Reference in New Issue
Block a user