X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=8f8a1763db88f190df240856ad4b196c2c4aa450;hb=fbd2b066a71c8c2371e11f7f6b201a9000b564e4;hp=dfe55bc023db693503e04cda39eb8550820c4883;hpb=b99fd476d07e737274c132a8e938cda73cf26377;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index dfe55bc..8f8a176 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -19,6 +19,11 @@ * @param jQuery|Element|Array c context * @cat Core */ + +// Map over jQuery in case of overwrite +if ( typeof jQuery != "undefined" ) + var _jQuery = jQuery; + var jQuery = window.jQuery = function(a,c) { // If the context is global, return a new object if ( window == this || !this.init ) @@ -29,7 +34,7 @@ var jQuery = window.jQuery = function(a,c) { // Map over the $ in case of overwrite if ( typeof $ != "undefined" ) - jQuery._$ = $; + var _$ = $; // Map the jQuery namespace to the '$' one window.$ = jQuery; @@ -158,7 +163,7 @@ jQuery.fn = jQuery.prototype = { if ( m && (m[1] || !c) ) { // HANDLE: $(html) -> $(array) if ( m[1] ) - a = jQuery.clean( [ m[1] ] ); + a = jQuery.clean( [ m[1] ], c ); // HANDLE: $("#id") else { @@ -641,27 +646,32 @@ jQuery.fn = jQuery.prototype = { * @param Element elem A DOM element that will be wrapped around the target. * @cat DOM/Manipulation */ - wrap: function() { - // The elements to wrap the target around - var a, args = arguments; - - // Wrap each of the matched elements individually - return this.each(function(){ - if ( !a ) - a = jQuery.clean(args, this.ownerDocument); - - // Clone the structure that we're using to wrap - var b = a[0].cloneNode(true); + wrapAll: function(html) { + if ( this[0] ) + // The elements to wrap the target around + jQuery(html, this[0].ownerDocument) + .clone() + .insertBefore(this[0]) + .map(function(){ + var elem = this; + while ( elem.firstChild ) + elem = elem.firstChild; + return elem; + }) + .append(this); - // Insert it before the element to be wrapped - this.parentNode.insertBefore( b, this ); + return this; + }, - // Find the deepest point in the wrap structure - while ( b.firstChild ) - b = b.firstChild; + wrapInner: function(html) { + return this.each(function(){ + jQuery(this).contents().wrapAll(html); + }); + }, - // Move the matched element to within the wrap structure - b.appendChild( this ); + wrap: function(html) { + return this.each(function(){ + jQuery(this).wrapAll(html); }); }, @@ -1177,9 +1187,19 @@ jQuery.fn = jQuery.prototype = { this.empty().append( val ); }, + replaceWith: function( val ) { + return this.after( val ).remove(); + }, + slice: function() { return this.pushStack( Array.prototype.slice.apply( this, arguments ) ); }, + + map: function(fn){ + return this.pushStack(jQuery.map( this, function(elem,i){ + return fn.call( elem, i, elem ); + })); + }, /** * @private @@ -1345,9 +1365,10 @@ jQuery.extend({ * @type undefined * @cat Core */ - noConflict: function() { - if ( jQuery._$ ) - $ = jQuery._$; + noConflict: function(deep) { + window.$ = _$; + if ( deep ) + window.jQuery = _jQuery; return jQuery; }, @@ -1428,7 +1449,7 @@ jQuery.extend({ fn.call( obj[i], i, obj[i] ); else for ( var i = 0, ol = obj.length, val = obj[0]; - i < ol && fn.call(val,i,val) !== false; val = obj[++i] ); + i < ol && fn.call(val,i,val) !== false; val = obj[++i] ){} } return obj; @@ -1851,7 +1872,7 @@ jQuery.extend({ // If a string is passed in for the function, make a function // for it (a handy shortcut) if ( typeof fn == "string" ) - fn = new Function("a","i","return " + fn); + fn = eval("false||function(a,i){return " + fn + "}"); var result = []; @@ -1905,7 +1926,7 @@ jQuery.extend({ // If a string is passed in for the function, make a function // for it (a handy shortcut) if ( typeof fn == "string" ) - fn = new Function("a","return " + fn); + fn = eval("false||function(a){return " + fn + "}"); var result = []; @@ -2135,7 +2156,8 @@ jQuery.each({ next: "jQuery.nth(a,2,'nextSibling')", prev: "jQuery.nth(a,2,'previousSibling')", siblings: "jQuery.sibling(a.parentNode.firstChild,a)", - children: "jQuery.sibling(a.firstChild)" + children: "jQuery.sibling(a.firstChild)", + contents: "jQuery.nodeName(a,'iframe')?a.contentDocument||a.contentWindow.document:jQuery.makeArray(a.childNodes)" }, function(i,n){ jQuery.fn[ i ] = function(a) { var ret = jQuery.map(this,n); @@ -2221,7 +2243,8 @@ jQuery.each({ appendTo: "append", prependTo: "prepend", insertBefore: "before", - insertAfter: "after" + insertAfter: "after", + replaceAll: "replaceWith" }, function(i,n){ jQuery.fn[ i ] = function(){ var a = arguments; @@ -2416,6 +2439,7 @@ jQuery.each( { * @param String str The string that will be contained within the text of an element. * @cat DOM/Traversing */ +// DEPRECATED jQuery.each( [ "eq", "lt", "gt", "contains" ], function(i,n){ jQuery.fn[ n ] = function(num,fn) { return this.filter( ":" + n + "(" + num + ")", fn );