From 325755d4b38e87b13f9c24a4c2991ec497552aad Mon Sep 17 00:00:00 2001 From: Ariel Flesler Date: Wed, 29 Oct 2008 02:01:22 +0000 Subject: [PATCH] jquery core: closes #3541. Added isArray. --- src/ajax.js | 6 +++--- src/core.js | 6 +++++- src/fx.js | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/ajax.js b/src/ajax.js index e4545335..7e024a31 100644 --- a/src/ajax.js +++ b/src/ajax.js @@ -76,7 +76,7 @@ jQuery.fn.extend({ .map(function(i, elem){ var val = jQuery(this).val(); return val == null ? null : - val.constructor == Array ? + jQuery.isArray(val) ? jQuery.map( val, function(val, i){ return {name: elem.name, value: val}; }) : @@ -504,7 +504,7 @@ jQuery.extend({ // If an array was passed in, assume that it is an array // of form elements - if ( a.constructor == Array || a.jquery ) + if ( jQuery.isArray(a) || a.jquery ) // Serialize the form elements jQuery.each( a, function(){ add( this.name, this.value ); @@ -515,7 +515,7 @@ jQuery.extend({ // Serialize the key/values for ( var j in a ) // If the value is an array then the key names need to be repeated - if ( a[j] && a[j].constructor == Array ) + if ( jQuery.isArray(a[j]) ) jQuery.each( a[j], function(){ add( j, this ); }); diff --git a/src/core.js b/src/core.js index 55c1223a..b35b2e96 100644 --- a/src/core.js +++ b/src/core.js @@ -407,7 +407,7 @@ jQuery.fn = jQuery.prototype = { if ( this.nodeType != 1 ) return; - if ( value.constructor == Array && /radio|checkbox/.test( this.type ) ) + if ( jQuery.isArray(value) && /radio|checkbox/.test( this.type ) ) this.checked = (jQuery.inArray(this.value, value) >= 0 || jQuery.inArray(this.name, value) >= 0); @@ -621,6 +621,10 @@ jQuery.extend({ isFunction: function( fn ) { return !!fn && !!fn.hasOwnProperty && fn instanceof Function; }, + + isArray: function( arr ){ + return !!arr && arr.constructor == Array; + }, // check if an element is in a (or is an) XML document isXMLDoc: function( elem ) { diff --git a/src/fx.js b/src/fx.js index 3fe93690..cbf067f3 100644 --- a/src/fx.js +++ b/src/fx.js @@ -112,7 +112,7 @@ jQuery.fn.extend({ }, queue: function(type, fn){ - if ( jQuery.isFunction(type) || ( type && type.constructor == Array )) { + if ( jQuery.isFunction(type) || jQuery.isArray(type) ) { fn = type; type = "fx"; } @@ -121,7 +121,7 @@ jQuery.fn.extend({ return queue( this[0], type ); return this.each(function(){ - if ( fn.constructor == Array ) + if ( jQuery.isArray(fn) ) queue(this, type, fn); else { queue(this, type).push( fn );