return undefined;
} else {
-
+
// Check form objects in IE (multiple bugs related)
- if ( isFormObjects ) {
- elem.getAttributeNode( name ).nodeValue = value;
+ // Only use nodeValue if the attribute node exists on the form
+ if ( isFormObjects && (ret = elem.getAttributeNode( name )) ) {
+ ret.nodeValue = value;
} else {
elem.setAttribute( name, value );
}
// Check form objects in IE (multiple bugs related)
if ( isFormObjects ) {
- // Return undefined for empty string, which is the blank nodeValue in IE
- ret = elem.getAttributeNode( name ).nodeValue || undefined;
+ // Return undefined if not specified instead of empty string
+ ret = elem.getAttributeNode( name );
+ return ret && ret.specified ? ret.nodeValue : undefined;
} else {
ret = elem.getAttribute( name );
}
});
test("attr(String)", function() {
- expect(25);
+ expect(26);
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
equals( jQuery('#radio1').attr('type'), "radio", 'Check for type attribute' );
equals( jQuery('#name').attr('name'), "name", 'Check for name attribute' );
equals( jQuery('#text1').attr('name'), "action", 'Check for name attribute' );
ok( jQuery('#form').attr('action').indexOf("formaction") >= 0, 'Check for action attribute' );
+ equals( jQuery('#form').attr('blah', 'blah').attr('blah'), 'blah', 'Set non-existant attribute on a form' );
// [7472] & [3113] (form contains an input with name="action" or name="id")
var extras = jQuery('<input name="id" name="name" /><input id="target" name="target" />').appendTo('#testForm');
td.attr("colspan", "2");
equals( td[0].colSpan, 2, "Check colspan is correctly set" );
table.attr("cellspacing", "2");
- equals( table[0].cellSpacing, 2, "Check cellspacing is correctly set" );
+ equals( table[0].cellSpacing, "2", "Check cellspacing is correctly set" );
// for #1070
jQuery("#name").attr('someAttr', '0');
});
test("removeAttr(String)", function() {
- expect(1);
+ expect(2);
equals( jQuery('#mark').removeAttr( "class" )[0].className, "", "remove class" );
-
+ equals( jQuery('#form').removeAttr('id').attr('id'), undefined, 'Remove id' );
});
test("removeProp(String)", function() {