Make sure attr() works on non DOM element nodes. Fixes #7202, #7451, #7500.

Also added some tests for this attr(name), attr(name, value) and removeAttr(name).
This commit is contained in:
Anton M 2010-11-13 14:39:28 +01:00
parent 49f088f2db
commit b50f41a2e3
2 changed files with 54 additions and 4 deletions

View file

@ -289,7 +289,7 @@ jQuery.extend({
name = notxml && jQuery.props[ name ] || name;
// Only do all the following if this is a node (faster for style)
if ( elem.nodeName ) {
if ( elem.nodeType === 1 ) {
// These attributes require special treatment
var special = rspecialurl.test( name );
@ -373,6 +373,11 @@ jQuery.extend({
// 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 ];
}
});