X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fcore.js;h=a86ef8dfbf23624233a8aa0bc91c9f137784103d;hb=99101e02f957087410cc0b5837ef09e3dfa12466;hp=9752fb16292f7fcf6f14b2aa951f76f9e529de03;hpb=a584f82aef3c20e11adeecc8513920e3d2a2ae2f;p=jquery.git diff --git a/src/core.js b/src/core.js index 9752fb1..a86ef8d 100644 --- a/src/core.js +++ b/src/core.js @@ -24,7 +24,10 @@ var jQuery = window.jQuery = window.$ = function( selector, context ) { var quickExpr = /^[^<]*(<(.|\s)+>)[^>]*$|^#(\w+)$/, // Is it a simple selector - isSimple = /^.[^:#\[\.]*$/; + isSimple = /^.[^:#\[\.]*$/, + +// Will speed up references to undefined, and allows munging its name. + undefined; jQuery.fn = jQuery.prototype = { init: function( selector, context ) { @@ -140,12 +143,10 @@ jQuery.fn = jQuery.prototype = { var ret = -1; // Locate the position of the desired element - this.each(function(i){ - if ( this == elem ) - ret = i; - }); - - return ret; + return jQuery.inArray( + // If it receives a jQuery object, the first element is used + elem && elem.jquery ? elem[0] : elem + , this ); }, attr: function( name, value, type ) { @@ -339,12 +340,12 @@ jQuery.fn = jQuery.prototype = { }, add: function( selector ) { - return !selector ? this : this.pushStack( jQuery.merge( + return this.pushStack( jQuery.unique( jQuery.merge( this.get(), - selector.constructor == String ? - jQuery( selector ).get() : - selector.length != undefined && (!selector.nodeName || jQuery.nodeName(selector, "form")) ? - selector : [selector] ) ); + typeof selector == 'string' ? + jQuery( selector ) : + jQuery.makeArray( selector ) + ))); }, is: function( selector ) { @@ -1111,8 +1112,8 @@ jQuery.extend({ if( array != null ){ var i = array.length; - //the window, forms, strings and functions also have 'length' - if( i == null || array.split || array.setInterval || array.call || array.elements ) + //the window, strings and functions also have 'length' + if( i == null || array.split || array.setInterval || array.call ) ret[0] = array; else while( i ) @@ -1124,7 +1125,8 @@ jQuery.extend({ inArray: function( elem, array ) { for ( var i = 0, length = array.length; i < length; i++ ) - if ( array[ i ] == elem ) + // Use === because on IE, window == document + if ( array[ i ] === elem ) return i; return -1; @@ -1175,7 +1177,7 @@ jQuery.extend({ // Go through the array, only saving the items // that pass the validator function for ( var i = 0, length = elems.length; i < length; i++ ) - if ( !inv && callback( elems[ i ], i ) || inv && !callback( elems[ i ], i ) ) + if ( !inv != !callback( elems[ i ], i ) ) ret.push( elems[ i ] ); return ret;