X-Git-Url: http://git.asbjorn.it/?a=blobdiff_plain;f=src%2Fjquery%2Fjquery.js;h=f986d28f8a054fce0aa04eac91d6d620ee4fb329;hb=c8b7881c738f6949095029d75d847acc98b0afbc;hp=f1cc33931e2a3da6f1fdc5923f82c65bbc2afdb7;hpb=866187fff66ef50b9c4b4c47f332f742c7546cc5;p=jquery.git diff --git a/src/jquery/jquery.js b/src/jquery/jquery.js index f1cc339..f986d28 100644 --- a/src/jquery/jquery.js +++ b/src/jquery/jquery.js @@ -1,7 +1,7 @@ /* * jQuery @VERSION - New Wave Javascript * - * Copyright (c) 2006 John Resig (jquery.com) + * Copyright (c) 2007 John Resig (jquery.com) * Dual licensed under the MIT (MIT-LICENSE.txt) * and GPL (GPL-LICENSE.txt) licenses. * @@ -38,14 +38,14 @@ var jQuery = function(a,c) { // Handle HTML strings if ( typeof a == "string" ) { - // HANDLE: $(html) -> $(array) var m = /^[^<]*(<.+>)[^>]*$/.exec(a); - if ( m ) - a = jQuery.clean( [ m[1] ] ); + + a = m ? + // HANDLE: $(html) -> $(array) + jQuery.clean( [ m[1] ] ) : - // HANDLE: $(expr) - else - return new jQuery( c ).find( a ); + // HANDLE: $(expr) + jQuery.find( a, c ); } return this.setArray( @@ -122,11 +122,6 @@ var $ = jQuery; * This function also accepts XML Documents and Window objects * as valid arguments (even though they are not DOM Elements). * - * @example $(document).find("div > p") - * @before

one

two

three

- * @result [

two

] - * @desc Same as $("div > p") because the document - * * @example $(document.body).background( "black" ); * @desc Sets the background color of the page to black. * @@ -416,10 +411,16 @@ jQuery.fn = jQuery.prototype = { * @result * @desc Sets title attribute from src attribute. * + * @example $("img").attr("title", function(index) { return this.title + (i + 1); }); + * @before + * @result + * @desc Enumerate title attribute. + * * @name attr * @type jQuery * @param String key The name of the property to set. * @param Function value A function returning the value to set. + * Scope: Current element, argument: Index of current element * @cat DOM/Attributes */ attr: function( key, value, type ) { @@ -435,12 +436,12 @@ jQuery.fn = jQuery.prototype = { } // Check to see if we're setting style values - return this.each(function(){ + return this.each(function(index){ // Set all the styles for ( var prop in obj ) jQuery.attr( type ? this.style : this, - prop, jQuery.prop(this, obj[prop], type) + prop, jQuery.prop(this, obj[prop], type, index) ); }); }, @@ -546,18 +547,16 @@ jQuery.fn = jQuery.prototype = { text: function(e) { if ( typeof e == "string" ) return this.empty().append( document.createTextNode( e ) ); - else { - e = e || this; - var t = ""; - for ( var j = 0, el = e.length; j < el; j++ ) { - var r = e[j].childNodes; - for ( var i = 0, rl = r.length; i < rl; i++ ) - if ( r[i].nodeType != 8 ) - t += r[i].nodeType != 1 ? - r[i].nodeValue : jQuery.fn.text([ r[i] ]); - } - return t; - } + + var t = ""; + jQuery.each( e || this, function(){ + jQuery.each( this.childNodes, function(){ + if ( this.nodeType != 8 ) + t += this.nodeType != 1 ? + this.nodeValue : jQuery.fn.text([ this ]); + }); + }); + return t; }, /** @@ -1102,8 +1101,9 @@ jQuery.fn = jQuery.prototype = { if ( table && this.nodeName.toUpperCase() == "TABLE" && a[0].nodeName.toUpperCase() == "TR" ) obj = this.getElementsByTagName("tbody")[0] || this.appendChild(document.createElement("tbody")); - for ( var i = 0, al = a.length; i < al; i++ ) - fn.apply( obj, [ clone ? a[i].cloneNode(true) : a[i] ] ); + jQuery.each( a, function(){ + fn.apply( obj, [ clone ? this.cloneNode(true) : this ] ); + }); }); } @@ -1262,10 +1262,10 @@ jQuery.extend({ return obj; }, - prop: function(elem, value, type){ + prop: function(elem, value, type, index){ // Handle executable functions if ( jQuery.isFunction( value ) ) - return value.call( elem ); + return value.call( elem, [index] ); // Handle passing in a number to a CSS property if ( value.constructor == Number && type == "curCSS" ) @@ -1316,10 +1316,10 @@ jQuery.extend({ if ( p == "height" || p == "width" ) { var old = {}, oHeight, oWidth, d = ["Top","Bottom","Right","Left"]; - for ( var i = 0, dl = d.length; i < dl; i++ ) { - old["padding" + d[i]] = 0; - old["border" + d[i] + "Width"] = 0; - } + jQuery.each( d, function(){ + old["padding" + this] = 0; + old["border" + this + "Width"] = 0; + }); jQuery.swap( e, old, function() { if (jQuery.css(e,"display") != "none") { @@ -1395,10 +1395,8 @@ jQuery.extend({ clean: function(a) { var r = []; - for ( var i = 0, al = a.length; i < al; i++ ) { - var arg = a[i]; - - if ( !arg ) continue; + jQuery.each( a, function(i,arg){ + if ( !arg ) return; if ( arg.constructor == Number ) arg = arg.toString(); @@ -1453,14 +1451,14 @@ jQuery.extend({ } if ( arg.length === 0 ) - continue; + return; if ( arg[0] == undefined ) r.push( arg ); else r = jQuery.merge( r, arg ); - } + }); return r; },