return access( this, name, value, true, jQuery.attr );
},
+ removeAttr: function( name ) {
+ if ( jQuery.isFunction( name ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.removeAttr( name.call(this, i, self.attr(name)) );
+ });
+ }
+
+ return this.each(function(){
+ jQuery.attr( this, name, "" );
+ if ( this.nodeType === 1 ) {
+ this.removeAttribute( name );
+ }
+ });
+ },
+
addClass: function( value ) {
if ( jQuery.isFunction(value) ) {
- return this.each(function() {
- jQuery(this).addClass( value.call(this) );
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.addClass( value.call(this, i, self.attr("class")) );
});
}
removeClass: function( value ) {
if ( jQuery.isFunction(value) ) {
- return this.each(function() {
- jQuery(this).removeClass( value.call(this) );
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.removeClass( value.call(this, i, self.attr("class")) );
});
}
return this;
},
+ toggleClass: function( classNames, state ) {
+ var type = typeof classNames;
+
+ if ( jQuery.isFunction( classNames ) ) {
+ return this.each(function(i) {
+ var self = jQuery(this);
+ self.toggleClass( classNames.call(this, i, self.attr("class")), state );
+ });
+ }
+
+ return this.each(function(){
+ if ( type === "string" ) {
+ // toggle individual class names
+ var isBool = typeof state === "boolean", className, i = 0,
+ classNames = classNames.split( rspace );
+
+ while ( (className = classNames[ i++ ]) ) {
+ // check each className given, space seperated list
+ state = isBool ? state : !jQuery(this).hasClass( className );
+ jQuery(this)[ state ? "addClass" : "removeClass" ]( className );
+ }
+
+ } else if ( type === "undefined" || type === "boolean" ) {
+ if ( this.className ) {
+ // store className if set
+ jQuery.data( this, "__className__", this.className );
+ }
+
+ // toggle whole className
+ this.className = this.className || classNames === false ? "" : jQuery.data( this, "__className__" ) || "";
+ }
+ });
+ },
+
hasClass: function( selector ) {
var className = " " + selector + " ";
for ( var i = 0, l = this.length; i < l; i++ ) {
var val = value;
- return this.each(function() {
+ return this.each(function(i) {
+ var self = jQuery(this);
+
if ( jQuery.isFunction(value) ) {
- val = value.call(this);
+ val = value.call(this, i, self.val());
// Typecast each time if the value is a Function and the appended
// value is therefore different each time.
}
if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
- this.checked = jQuery.inArray( jQuery(this).val(), val ) >= 0;
+ this.checked = jQuery.inArray( self.val(), val ) >= 0;
} else if ( jQuery.nodeName( this, "select" ) ) {
var values = jQuery.makeArray(val);
jQuery( "option", this ).each(function() {
- this.selected = jQuery.inArray( jQuery(this).val(), values ) >= 0;
+ this.selected = jQuery.inArray( self.val(), values ) >= 0;
});
if ( !values.length ) {
}
});
-jQuery.each({
- removeAttr: function( name ) {
- jQuery.attr( this, name, "" );
- if ( this.nodeType === 1 ) {
- this.removeAttribute( name );
- }
- },
-
- toggleClass: function( classNames, state ) {
- var type = typeof classNames;
-
- if ( type === "string" ) {
- // toggle individual class names
- var isBool = typeof state === "boolean", className, i = 0,
- classNames = classNames.split( rspace );
-
- while ( (className = classNames[ i++ ]) ) {
- // check each className given, space seperated list
- state = isBool ? state : !jQuery(this).hasClass( className );
- jQuery(this)[ state ? "addClass" : "removeClass" ]( className );
- }
-
- } else if ( type === "undefined" || type === "boolean" ) {
- if ( this.className ) {
- // store className if set
- jQuery.data( this, "__className__", this.className );
- }
-
- // toggle whole className
- this.className = this.className || classNames === false ? "" : jQuery.data( this, "__className__" ) || "";
- }
- }
-}, function( name, fn ) {
- jQuery.fn[ name ] = function( val, state ) {
- if ( jQuery.isFunction( val ) ) {
- return this.each(function() {
- jQuery(this)[ name ]( val.call(this), state );
- });
- }
-
- return this.each( fn, arguments );
- };
-});
-
jQuery.extend({
attrFn: {
val: true,
jQuery.fn.extend({
text: function( text ) {
if ( jQuery.isFunction(text) ) {
- return this.each(function() {
- return jQuery(this).text( text.call(this) );
+ return this.each(function(i) {
+ var self = jQuery(this);
+ return self.text( text.call(this, i, self.text()) );
});
}
wrapAll: function( html ) {
if ( jQuery.isFunction( html ) ) {
- return this.each(function() {
- jQuery(this).wrapAll( html.apply(this, arguments) );
+ return this.each(function(i) {
+ jQuery(this).wrapAll( html.call(this, i) );
});
}
var results, first, value = args[0], scripts = [];
if ( jQuery.isFunction(value) ) {
- return this.each(function() {
- args[0] = value.call(this);
- return jQuery(this).domManip( args, table, callback );
+ return this.each(function(i) {
+ var self = jQuery(this);
+ args[0] = value.call(this, i, table ? self.html() : undefined);
+ return self.domManip( args, table, callback );
});
}