return this.prevObject || jQuery( [] );
},
+ push: [].push,
+
find: function( selector ) {
- var elems = jQuery.map(this, function(elem){
- return jQuery.find( selector, elem );
- });
+ if ( this.length === 1 && !/,/.test(selector) ) {
+ var ret = this.pushStack( [], "find", selector );
+ ret.length = 0;
+ jQuery.find( selector, this[0], ret );
+ return ret;
+ } else {
+ var elems = jQuery.map(this, function(elem){
+ return jQuery.find( selector, elem );
+ });
- return this.pushStack( /[^+>] [^+>]/.test( selector ) ?
- jQuery.unique( elems ) :
- elems, "find", selector );
+ return this.pushStack( /[^+>] [^+>]/.test( selector ) ?
+ jQuery.unique( elems ) :
+ elems, "find", selector );
+ }
},
clone: function( events ) {
domManip: function( args, table, callback ) {
if ( this[0] ) {
- var fragment = this[0].ownerDocument.createDocumentFragment(),
- scripts = jQuery.clean( args, this[0].ownerDocument, fragment ),
+ var fragment = (this[0].ownerDocument || this[0]).createDocumentFragment(),
+ scripts = jQuery.clean( args, (this[0].ownerDocument || this[0]), fragment ),
first = fragment.firstChild,
extra = this.length > 1 ? fragment.cloneNode(true) : fragment;
-
+
if ( first )
for ( var i = 0, l = this.length; i < l; i++ )
callback.call( root(this[i], first), i > 0 ? extra.cloneNode(true) : fragment );
if ( !jQuery.support.leadingWhitespace && /^\s/.test( elem ) )
div.insertBefore( context.createTextNode( elem.match(/^\s*/)[0] ), div.firstChild );
- if ( fragment ) {
- var found = div.getElementsByTagName("script");
-
- while ( found.length ) {
- scripts.push( found[0] );
- found[0].parentNode.removeChild( found[0] );
- }
- }
-
elem = jQuery.makeArray( div.childNodes );
}
if ( fragment ) {
for ( var i = 0; ret[i]; i++ ) {
- var node = ret[i];
- if ( jQuery.nodeName( node, "script" ) ) {
- if( node.parentNode )
- node.parentNode.removeChild( node );
+ if ( jQuery.nodeName( ret[i], "script" ) ) {
+ scripts.push( ret[i].parentNode.removeChild( ret[i] ) );
} else {
- if ( node.nodeType === 1 )
- ret = jQuery.merge( ret, node.getElementsByTagName("script"));
- fragment.appendChild( node );
+ if ( ret[i].nodeType === 1 )
+ ret.splice.apply( ret, [i + 1, 0].concat(jQuery.makeArray(ret[i].getElementsByTagName("script"))) );
+ fragment.appendChild( ret[i] );
}
}