Make sure that .find() with multiple direct child selectors is handled correctly. Fixes #7144.
This commit is contained in:
parent
ff6ceadbfd
commit
5200194f51
|
@ -4,7 +4,7 @@ var runtil = /Until$/,
|
|||
rparentsprev = /^(?:parents|prevUntil|prevAll)/,
|
||||
// Note: This RegExp should be improved, or likely pulled from Sizzle
|
||||
rmultiselector = /,/,
|
||||
rchild = /^\s*>/,
|
||||
rchild = /(^|,)\s*>/g,
|
||||
isSimple = /^.[^:#\[\.,]*$/,
|
||||
slice = Array.prototype.slice,
|
||||
POS = jQuery.expr.match.POS;
|
||||
|
@ -13,7 +13,7 @@ jQuery.fn.extend({
|
|||
find: function( selector ) {
|
||||
// Handle "> div" child selectors and pass them to .children()
|
||||
if ( typeof selector === "string" && rchild.test( selector ) ) {
|
||||
return this.children( selector.replace( rchild, "" ) );
|
||||
return this.children( selector.replace( rchild, "$1" ) );
|
||||
}
|
||||
|
||||
var ret = this.pushStack( "", "find", selector ), length = 0;
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
module("traversing");
|
||||
|
||||
test("find(String)", function() {
|
||||
expect(3);
|
||||
expect(4);
|
||||
equals( 'Yahoo', jQuery('#foo').find('.blogTest').text(), 'Check for find' );
|
||||
|
||||
// using contents will get comments regular, text, and comment nodes
|
||||
|
@ -9,6 +9,7 @@ test("find(String)", function() {
|
|||
equals( j.find("div").length, 0, "Check node,textnode,comment to find zero divs" );
|
||||
|
||||
same( jQuery("#main").find("> div").get(), q("foo", "moretests", "tabindex-tests", "liveHandlerOrder", "siblingTest"), "find child elements" );
|
||||
same( jQuery("#main").find("> #foo, > #moretests").get(), q("foo", "moretests"), "find child elements" );
|
||||
});
|
||||
|
||||
test("is(String)", function() {
|
||||
|
|
Loading…
Reference in a new issue