Side navigation
Ticket #1591: ie-table-attr-namespace.patch
File ie-table-attr-namespace.patch, 2.1 KB (added by jdsharp, June 03, 2008 04:29PM UTC)
Patch against 5711
Index: src/core.js
===================================================================
--- src/core.js (revision 5711)
+++ src/core.js (working copy)
@@ -1072,6 +1072,9 @@
// browsers index elements by id/name on forms, give priority to attributes.
if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
return elem.getAttributeNode( name ).nodeValue;
+
+ if ( msie && jQuery.nodeName( elem, "table" ) && name.indexOf(':') > -1 && elem.attributes[name] === undefined )
+ return undefined;
return elem[ name ];
}
@@ -1368,4 +1371,4 @@
// Helper function used by the dimensions and offset modules
function num(elem, prop) {
return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}
\ No newline at end of file
+}
Index: test/unit/core.js
===================================================================
--- test/unit/core.js (revision 5711)
+++ test/unit/core.js (working copy)
@@ -317,7 +317,7 @@
});
test("attr(String)", function() {
- expect(26);
+ expect(28);
equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' );
equals( jQuery('#text1').attr('value', "Test2").attr('defaultValue'), "Test", 'Check for defaultValue attribute' );
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
@@ -341,6 +341,9 @@
jQuery('').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path
equals( jQuery('#tAnchor5').attr('href'), "#5", 'Check for non-absolute href (an anchor)' );
+ // Related to [1591] - IE 6 & 7 throw Invalid Parameter error when a namespaced attribute on a table tag is non-existent
+ ok( jQuery('#foo').attr('non:existent') === undefined, 'Make sure namespaced:attributes for div return undefined if non-existent' );
+ ok( jQuery('#table').attr('non:existent') === undefined, 'Make sure namespaced:attributes for table tag return undefined if non-existent (IE6+)' );
// Related to [5574] and [5683]
var body = document.body, $body = jQuery(body);
Download in other formats:
Original Format
File ie-table-attr-namespace.patch, 2.1 KB (added by jdsharp, June 03, 2008 04:29PM UTC)
Patch against 5711
Index: src/core.js
===================================================================
--- src/core.js (revision 5711)
+++ src/core.js (working copy)
@@ -1072,6 +1072,9 @@
// browsers index elements by id/name on forms, give priority to attributes.
if( jQuery.nodeName( elem, "form" ) && elem.getAttributeNode(name) )
return elem.getAttributeNode( name ).nodeValue;
+
+ if ( msie && jQuery.nodeName( elem, "table" ) && name.indexOf(':') > -1 && elem.attributes[name] === undefined )
+ return undefined;
return elem[ name ];
}
@@ -1368,4 +1371,4 @@
// Helper function used by the dimensions and offset modules
function num(elem, prop) {
return elem[0] && parseInt( jQuery.curCSS(elem[0], prop, true), 10 ) || 0;
-}
\ No newline at end of file
+}
Index: test/unit/core.js
===================================================================
--- test/unit/core.js (revision 5711)
+++ test/unit/core.js (working copy)
@@ -317,7 +317,7 @@
});
test("attr(String)", function() {
- expect(26);
+ expect(28);
equals( jQuery('#text1').attr('value'), "Test", 'Check for value attribute' );
equals( jQuery('#text1').attr('value', "Test2").attr('defaultValue'), "Test", 'Check for defaultValue attribute' );
equals( jQuery('#text1').attr('type'), "text", 'Check for type attribute' );
@@ -341,6 +341,9 @@
jQuery('').attr('href', '#5').appendTo('#main'); // using innerHTML in IE causes href attribute to be serialized to the full path
equals( jQuery('#tAnchor5').attr('href'), "#5", 'Check for non-absolute href (an anchor)' );
+ // Related to [1591] - IE 6 & 7 throw Invalid Parameter error when a namespaced attribute on a table tag is non-existent
+ ok( jQuery('#foo').attr('non:existent') === undefined, 'Make sure namespaced:attributes for div return undefined if non-existent' );
+ ok( jQuery('#table').attr('non:existent') === undefined, 'Make sure namespaced:attributes for table tag return undefined if non-existent (IE6+)' );
// Related to [5574] and [5683]
var body = document.body, $body = jQuery(body);