jquery core: closes #2771
authorAriel Flesler <aflesler@gmail.com>
Thu, 8 May 2008 16:14:49 +0000 (16:14 +0000)
committerAriel Flesler <aflesler@gmail.com>
Thu, 8 May 2008 16:14:49 +0000 (16:14 +0000)
$.inArray now makes a === check because of IE.
$.inArray is used in $.fn.index, this is shorter, and breaks the loop when possible.
$.fn.index can receive a jquery object, and the first element is used

src/core.js

index 500e400..42fd8d4 100644 (file)
@@ -140,12 +140,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 ) {
@@ -1124,7 +1122,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;