Handle child selectors in particular - away from the selector engine. Fixes #7029.
This commit is contained in:
parent
873c28425f
commit
f1f6bc3ec4
|
@ -4,11 +4,17 @@ var runtil = /Until$/,
|
||||||
rparentsprev = /^(?:parents|prevUntil|prevAll)/,
|
rparentsprev = /^(?:parents|prevUntil|prevAll)/,
|
||||||
// Note: This RegExp should be improved, or likely pulled from Sizzle
|
// Note: This RegExp should be improved, or likely pulled from Sizzle
|
||||||
rmultiselector = /,/,
|
rmultiselector = /,/,
|
||||||
|
rchild = /^\s*>/,
|
||||||
isSimple = /^.[^:#\[\.,]*$/,
|
isSimple = /^.[^:#\[\.,]*$/,
|
||||||
slice = Array.prototype.slice;
|
slice = Array.prototype.slice;
|
||||||
|
|
||||||
jQuery.fn.extend({
|
jQuery.fn.extend({
|
||||||
find: function( selector ) {
|
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, "" ) );
|
||||||
|
}
|
||||||
|
|
||||||
var ret = this.pushStack( "", "find", selector ), length = 0;
|
var ret = this.pushStack( "", "find", selector ), length = 0;
|
||||||
|
|
||||||
for ( var i = 0, l = this.length; i < l; i++ ) {
|
for ( var i = 0, l = this.length; i < l; i++ ) {
|
||||||
|
|
|
@ -1,12 +1,14 @@
|
||||||
module("traversing");
|
module("traversing");
|
||||||
|
|
||||||
test("find(String)", function() {
|
test("find(String)", function() {
|
||||||
expect(2);
|
expect(3);
|
||||||
equals( 'Yahoo', jQuery('#foo').find('.blogTest').text(), 'Check for find' );
|
equals( 'Yahoo', jQuery('#foo').find('.blogTest').text(), 'Check for find' );
|
||||||
|
|
||||||
// using contents will get comments regular, text, and comment nodes
|
// using contents will get comments regular, text, and comment nodes
|
||||||
var j = jQuery("#nonnodes").contents();
|
var j = jQuery("#nonnodes").contents();
|
||||||
equals( j.find("div").length, 0, "Check node,textnode,comment to find zero divs" );
|
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" );
|
||||||
});
|
});
|
||||||
|
|
||||||
test("is(String)", function() {
|
test("is(String)", function() {
|
||||||
|
|
Loading…
Reference in a new issue