X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fcore.js;h=5a098bebd4327324dd8b5d08a50194763e968744;hb=e4d8365ec7e9cc8bc8aba47817601d413dd10e28;hp=7ddb2c5b0fdde1b3c50c8108d57795a019f12bc3;hpb=b850ab2b8e65eadd25093c81bbc67a881daa0488;p=jquery.git diff --git a/src/core.js b/src/core.js index 7ddb2c5..5a098be 100644 --- a/src/core.js +++ b/src/core.js @@ -81,7 +81,7 @@ jQuery.fn = jQuery.prototype = { // HANDLE: $(function) // Shortcut for document ready } else if ( jQuery.isFunction( selector ) ) - return jQuery( document )[ jQuery.fn.ready ? "ready" : "load" ]( selector ); + return jQuery( document ).ready( selector ); return this.setArray(jQuery.makeArray(selector)); }, @@ -338,6 +338,17 @@ jQuery.fn = jQuery.prototype = { }) ), "filter", selector ); }, + closest: function( selector ) { + return this.map(function(){ + var cur = this; + while ( cur && cur.ownerDocument ) { + if ( jQuery(cur).is(selector) ) + return cur; + cur = cur.parentNode; + } + }); + }, + not: function( selector ) { if ( typeof selector === "string" ) // test special case where just one selector is passed in @@ -898,13 +909,14 @@ jQuery.extend({ }, clean: function( elems, context, fragment ) { - var ret = [], scripts = []; context = context || document; // !context.createElement fails in IE with an error but returns typeof 'object' if ( typeof context.createElement === "undefined" ) context = context.ownerDocument || context[0] && context[0].ownerDocument || document; + var ret = [], scripts = [], div = context.createElement("div"); + jQuery.each(elems, function(i, elem){ if ( typeof elem === "number" ) elem += ''; @@ -922,7 +934,7 @@ jQuery.extend({ }); // Trim whitespace, otherwise indexOf won't work as expected - var tags = jQuery.trim( elem ).toLowerCase(), div = context.createElement("div"); + var tags = jQuery.trim( elem ).toLowerCase(); var wrap = // option or optgroup @@ -998,6 +1010,9 @@ jQuery.extend({ ret = jQuery.merge( ret, elem ); }); + + // Clean up + div.innerHTML = ""; if ( fragment ) { for ( var i = 0; ret[i]; i++ ) { @@ -1138,12 +1153,12 @@ jQuery.extend({ // Also, we need to make sure that the correct elements are being returned // (IE returns comment nodes in a '*' query) if ( !jQuery.support.getAll ) { - while ( (elem = second[ i++ ]) ) + while ( (elem = second[ i++ ]) != null ) if ( elem.nodeType != 8 ) first[ pos++ ] = elem; } else - while ( (elem = second[ i++ ]) ) + while ( (elem = second[ i++ ]) != null ) first[ pos++ ] = elem; return first; @@ -1269,8 +1284,10 @@ jQuery.each({ jQuery.className.remove( this, classNames ); }, - toggleClass: function( classNames ) { - jQuery.className[ jQuery.className.has( this, classNames ) ? "remove" : "add" ]( this, classNames ); + toggleClass: function( classNames, state ) { + if( typeof state !== "boolean" ) + state = !jQuery.className.has( this, classNames ); + jQuery.className[ state ? "add" : "remove" ]( this, classNames ); }, remove: function( selector ) {