X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=004d6341a3f618d4d4ee1bbf0ea16f36b0f11d1a;hb=fd0f42bf5cf18d311db78680e4d28bc6ff1b016c;hp=f4d2ef728a33b8724acc8f44fee0228f0882e824;hpb=34c0bed54a5ad812b1f78a85529164e0085f50d7;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index f4d2ef7..004d634 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -38,7 +38,7 @@ var jQuery = function(a,c) { // Handle HTML strings if ( typeof a == "string" ) { // HANDLE: $(html) -> $(array) - var m = /^[^<]*(<(.|\n)+>)[^>]*$/.exec(a); + var m = /^[^<]*(<(.|\s)+>)[^>]*$/.exec(a); if ( m ) a = jQuery.clean( [ m[1] ] ); @@ -257,9 +257,9 @@ jQuery.fn = jQuery.prototype = { * @cat Core */ pushStack: function( a ) { - var ret = jQuery(this); + var ret = jQuery(a); ret.prevObject = this; - return ret.setArray( a ); + return ret; }, /** @@ -803,7 +803,7 @@ jQuery.fn = jQuery.prototype = { find: function(t) { return this.pushStack( jQuery.map( this, function(a){ return jQuery.find(t,a); - }) ); + }), t ); }, /** @@ -927,14 +927,14 @@ jQuery.fn = jQuery.prototype = { not: function(t) { return this.pushStack( t.constructor == String && - jQuery.multiFilter(t,this,true) || - - jQuery.grep(this,function(a){ - if ( t.constructor == Array || t.jquery ) - return jQuery.inArray( t, a ) < 0; - else - return a != t; - }) ); + jQuery.multiFilter(t, this, true) || + + jQuery.grep(this, function(a) { + return ( t.constructor == Array || t.jquery ) + ? jQuery.inArray( a, t ) < 0 + : a != t; + }) + ); }, /** @@ -986,7 +986,7 @@ jQuery.fn = jQuery.prototype = { this.get(), t.constructor == String ? jQuery(t).get() : - t.length != undefined && !t.nodeName ? + t.length != undefined && (!t.nodeName || t.nodeName == "FORM") ? t : [t] ) ); }, @@ -1100,7 +1100,7 @@ jQuery.fn = jQuery.prototype = { return this.each(function(){ var obj = this; - if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() == "TR" ) + if ( table && jQuery.nodeName(this, "table") && jQuery.nodeName(a[0], "tr") ) obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody")); jQuery.each( a, function(){ @@ -1229,6 +1229,10 @@ jQuery.extend({ typeof fn[0] == "undefined" && /function/i.test( fn + "" ); }, + nodeName: function( elem, name ) { + return elem.nodeName && elem.nodeName.toUpperCase() == name.toUpperCase(); + }, + /** * A generic iterator function, which can be used to seemlessly * iterate over both objects and arrays. This function is not the same @@ -1277,10 +1281,9 @@ jQuery.extend({ var exclude = /z-?index|font-?weight|opacity|zoom|line-?height/i; // Handle passing in a number to a CSS property - if ( value.constructor == Number && type == "curCSS" && !exclude.test(prop) ) - return value + "px"; - - return value; + return value && value.constructor == Number && type == "curCSS" && !exclude.test(prop) ? + value + "px" : + value; }, className: { @@ -1451,7 +1454,7 @@ jQuery.extend({ tb = div.childNodes; for ( var n = tb.length-1; n >= 0 ; --n ) - if ( tb[n].nodeName.toUpperCase() == "TBODY" && !tb[n].childNodes.length ) + if ( jQuery.nodeName(tb[n], "tbody") && !tb[n].childNodes.length ) tb[n].parentNode.removeChild(tb[n]); } @@ -1510,7 +1513,7 @@ jQuery.extend({ if ( value != undefined ) elem[fix[name]] = value; return elem[fix[name]]; - } else if ( value == undefined && jQuery.browser.msie && elem.nodeName && elem.nodeName.toUpperCase() == "FORM" && (name == "action" || name == "method") ) + } else if ( value == undefined && jQuery.browser.msie && jQuery.nodeName(elem, "form") && (name == "action" || name == "method") ) return elem.getAttributeNode(name).nodeValue; // IE elem.getAttribute passes even for style