git.asbjorn.biz
/
jquery.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Code style fix
[jquery.git]
/
src
/
attributes.js
diff --git
a/src/attributes.js
b/src/attributes.js
index
a76695b
..
78b1bfd
100644
(file)
--- a/
src/attributes.js
+++ b/
src/attributes.js
@@
-1,6
+1,6
@@
(function( jQuery ) {
(function( jQuery ) {
-var rclass = /[\n\t]/g,
+var rclass = /[\n\t\r]/g,
rspaces = /\s+/,
rreturn = /\r/g,
rspecialurl = /^(?:href|src|style)$/,
rspaces = /\s+/,
rreturn = /\r/g,
rspecialurl = /^(?:href|src|style)$/,
@@
-9,6
+9,19
@@
var rclass = /[\n\t]/g,
rclickable = /^a(?:rea)?$/i,
rradiocheck = /^(?:radio|checkbox)$/i;
rclickable = /^a(?:rea)?$/i,
rradiocheck = /^(?:radio|checkbox)$/i;
+jQuery.props = {
+ "for": "htmlFor",
+ "class": "className",
+ readonly: "readOnly",
+ maxlength: "maxLength",
+ cellspacing: "cellSpacing",
+ rowspan: "rowSpan",
+ colspan: "colSpan",
+ tabindex: "tabIndex",
+ usemap: "useMap",
+ frameborder: "frameBorder"
+};
+
jQuery.fn.extend({
attr: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.attr );
jQuery.fn.extend({
attr: function( name, value ) {
return jQuery.access( this, name, value, true, jQuery.attr );
@@
-42,7
+55,9
@@
jQuery.fn.extend({
elem.className = value;
} else {
elem.className = value;
} else {
- var className = " " + elem.className + " ", setClass = elem.className;
+ var className = " " + elem.className + " ",
+ setClass = elem.className;
+
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
setClass += " " + classNames[c];
for ( var c = 0, cl = classNames.length; c < cl; c++ ) {
if ( className.indexOf( " " + classNames[c] + " " ) < 0 ) {
setClass += " " + classNames[c];
@@
-90,7
+105,8
@@
jQuery.fn.extend({
},
toggleClass: function( value, stateVal ) {
},
toggleClass: function( value, stateVal ) {
- var type = typeof value, isBool = typeof stateVal === "boolean";
+ var type = typeof value,
+ isBool = typeof stateVal === "boolean";
if ( jQuery.isFunction( value ) ) {
return this.each(function(i) {
if ( jQuery.isFunction( value ) ) {
return this.each(function(i) {
@@
-102,7
+118,9
@@
jQuery.fn.extend({
return this.each(function() {
if ( type === "string" ) {
// toggle individual class names
return this.each(function() {
if ( type === "string" ) {
// toggle individual class names
- var className, i = 0, self = jQuery(this),
+ var className,
+ i = 0,
+ self = jQuery( this ),
state = stateVal,
classNames = value.split( rspaces );
state = stateVal,
classNames = value.split( rspaces );
@@
-136,7
+154,7
@@
jQuery.fn.extend({
},
val: function( value ) {
},
val: function( value ) {
- if ( value === undefined ) {
+ if ( !arguments.length ) {
var elem = this[0];
if ( elem ) {
var elem = this[0];
if ( elem ) {
@@
-164,8
+182,9
@@
jQuery.fn.extend({
var option = options[ i ];
// Don't return options that are disabled or in a disabled optgroup
var option = options[ i ];
// Don't return options that are disabled or in a disabled optgroup
- if ( option.selected && !option.disabled &&
+ if ( option.selected && (jQuery.support.optDisabled ? !option.disabled : option.getAttribute("disabled") === null) &&
(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
(!option.parentNode.disabled || !jQuery.nodeName( option.parentNode, "optgroup" )) ) {
+
// Get the specific value for the option
value = jQuery(option).val();
// Get the specific value for the option
value = jQuery(option).val();
@@
-186,7
+205,6
@@
jQuery.fn.extend({
if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
return elem.getAttribute("value") === null ? "on" : elem.value;
}
if ( rradiocheck.test( elem.type ) && !jQuery.support.checkOn ) {
return elem.getAttribute("value") === null ? "on" : elem.value;
}
-
// Everything else, we just grab the value
return (elem.value || "").replace(rreturn, "");
// Everything else, we just grab the value
return (elem.value || "").replace(rreturn, "");
@@
-209,10
+227,15
@@
jQuery.fn.extend({
val = value.call(this, i, self.val());
}
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 ( typeof val === "number" ) {
+ // Treat null/undefined as ""; convert numbers to string
+ if ( val == null ) {
+ val = "";
+ } else if ( typeof val === "number" ) {
val += "";
val += "";
+ } else if ( jQuery.isArray(val) ) {
+ val = jQuery.map(val, function (value) {
+ return value == null ? "" : value + "";
+ });
}
if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
}
if ( jQuery.isArray(val) && rradiocheck.test( this.type ) ) {
@@
-247,10
+270,10
@@
jQuery.extend({
height: true,
offset: true
},
height: true,
offset: true
},
-
+
attr: function( elem, name, value, pass ) {
attr: function( elem, name, value, pass ) {
- // don't set attributes on text and comment nodes
- if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 ) {
+ // don't get/set attributes on text, comment and attribute nodes
+ if ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || elem.nodeType === 2 ) {
return undefined;
}
return undefined;
}
@@
-276,7
+299,7
@@
jQuery.extend({
var parent = elem.parentNode;
if ( parent ) {
parent.selectedIndex;
var parent = elem.parentNode;
if ( parent ) {
parent.selectedIndex;
-
+
// Make sure that it also works with optgroups, see #5701
if ( parent.parentNode ) {
parent.parentNode.selectedIndex;
// Make sure that it also works with optgroups, see #5701
if ( parent.parentNode ) {
parent.parentNode.selectedIndex;
@@
-293,7
+316,14
@@
jQuery.extend({
jQuery.error( "type property can't be changed" );
}
jQuery.error( "type property can't be changed" );
}
- elem[ name ] = value;
+ if ( value === null ) {
+ if ( elem.nodeType === 1 ) {
+ elem.removeAttribute( name );
+ }
+
+ } else {
+ elem[ name ] = value;
+ }
}
// browsers index elements by id/name on forms, give priority to attributes.
}
// browsers index elements by id/name on forms, give priority to attributes.
@@
-331,7
+361,7
@@
jQuery.extend({
// Ensure that missing attributes return undefined
// Blackberry 4.7 returns "" from getAttribute #6938
// Ensure that missing attributes return undefined
// Blackberry 4.7 returns "" from getAttribute #6938
- if ( !elem.attributes[ name ] && !elem.hasAttribute( name ) ) {
+ if ( !elem.attributes[ name ] && (elem.hasAttribute && !elem.hasAttribute( name )) ) {
return undefined;
}
return undefined;
}
@@
-343,6
+373,11
@@
jQuery.extend({
// Non-existent attributes return null, we normalize to undefined
return attr === null ? undefined : attr;
}
// Non-existent attributes return null, we normalize to undefined
return attr === null ? undefined : attr;
}
+ // Handle everything which isn't a DOM element node
+ if ( set ) {
+ elem[ name ] = value;
+ }
+ return elem[ name ];
}
});
}
});