Permalink
Browse files

jquery core: closes #2771

$.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
  • Loading branch information...
1 parent ca73ba5 commit 858d56fc8e26a686cb19d1e35b0c2e8953987e49 @flesler flesler committed May 8, 2008
Showing with 6 additions and 7 deletions.
  1. +6 −7 src/core.js
View
@@ -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;

0 comments on commit 858d56f

Please sign in to comment.