X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fcore.js;h=56fbbde1cceefc601785b22ec201894446b0dd76;hb=ace13387c8d7b5823a580db0f1b2aafac515b9f5;hp=3dfb84a02a96098012696477a08c3b7806aed7fa;hpb=ece001f1394aeddcfe061dcba224726173325220;p=jquery.git diff --git a/src/core.js b/src/core.js index 3dfb84a..56fbbde 100644 --- a/src/core.js +++ b/src/core.js @@ -292,9 +292,14 @@ jQuery.fn = jQuery.prototype = { return this.prevObject || jQuery(null); }, + // For internal use only. + // Behaves like an Array's method, not like a jQuery method. + push: [].push, + sort: [].sort, + splice: [].splice, + find: function( selector ) { - var ret = this.pushStack( "", "find", selector ), length = 0, - splice = Array.prototype.splice; + var ret = this.pushStack( "", "find", selector ), length = 0; for ( var i = 0, l = this.length; i < l; i++ ) { length = ret.length; @@ -305,7 +310,7 @@ jQuery.fn = jQuery.prototype = { for ( var n = length; n < ret.length; n++ ) { for ( var r = 0; r < length; r++ ) { if ( ret[r] === ret[n] ) { - splice.call(ret, n--, 1); + ret.splice(n--, 1); break; } } @@ -328,14 +333,14 @@ jQuery.fn = jQuery.prototype = { // attributes in IE that are actually only stored // as properties will not be copied (such as the // the name attribute on an input). - var html = this.outerHTML; + var html = this.outerHTML, ownerDocument = this.ownerDocument; if ( !html ) { - var div = this.ownerDocument.createElement("div"); + var div = ownerDocument.createElement("div"); div.appendChild( this.cloneNode(true) ); html = div.innerHTML; } - return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")])[0]; + return jQuery.clean([html.replace(/ jQuery\d+="(?:\d+|null)"/g, "").replace(/^\s*/, "")], ownerDocument)[0]; } else return this.cloneNode(true); }); @@ -999,7 +1004,7 @@ jQuery.extend({ if ( name in elem && notxml && !special ) { if ( set ){ // We can't allow the type property to be changed (since it causes problems in IE) - if ( name == "type" && jQuery.nodeName( elem, "input" ) && elem.parentNode ) + if ( name == "type" && elem.nodeName.match(/(button|input)/i) && elem.parentNode ) throw "type property can't be changed"; elem[ name ] = value; @@ -1284,8 +1289,3 @@ function cleanData( elems ) { } } } - -// Helper function used by the dimensions and offset modules -function num(elem, prop) { - return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0; -}