Bug Tracker

Opened 16 years ago

Closed 12 years ago

Last modified 11 years ago

#1591 closed bug (fixed)

IE "Invalid Argument" $('table').attr('non-existent')

Reported by: jdsharp Owned by: Timmy Willison
Priority: high Milestone: 1.6
Component: attributes Version: 1.2
Keywords: Cc:
Blocked by: Blocking:

Description

IE 6 throws an "Invalid Argument" error when attempting to get an attribute from a table element. Functions as desired with a div (returns undefined). Fix attached. (Is broken in 1.1.3.1, 1.1.4, 1.2)

Attachments (3)

attr.html (701 bytes) - added by jdsharp 16 years ago.
Test case
jquery-1.2.js (77.8 KB) - added by jdsharp 16 years ago.
Changes at line 860
ie-table-attr-namespace.patch (2.1 KB) - added by jdsharp 15 years ago.
Patch against 5711

Download all attachments as: .zip

Change History (20)

Changed 16 years ago by jdsharp

Attachment: attr.html added

Test case

Changed 16 years ago by jdsharp

Attachment: jquery-1.2.js added

Changes at line 860

comment:1 Changed 16 years ago by jdsharp

Some more research reveled that this only occurs when the attribute in question contains a ':'. Updated patch as follows:

Fixes a getAttribute 'Invalid Exception' error when getting an attribute with a ':' in it on a table element when the attribute does not exist http://www.andrewdupont.net/2007/01/10/code-hasattribute-for-ie/ if ( jQuery.browser.msie ) {

if ( /href|src/.test(name) && !jQuery.isXMLDoc(elem) )

return elem.getAttribute( name, 2 );

if ( name.indexOf(':') > -1 )

return ( elem.attributes[name] != undefined ? elem.getAttribute(name) : undefined );

} return elem.getAttribute( name );

comment:2 in reply to:  1 Changed 16 years ago by digitalspagh

Replying to jdsharp:

Some more research reveled that this only occurs when the attribute in question contains a ':'. Updated patch as follows:

Fixes a getAttribute 'Invalid Exception' error when getting an attribute with a ':' in it on a table element when the attribute does not exist http://www.andrewdupont.net/2007/01/10/code-hasattribute-for-ie/ if ( jQuery.browser.msie ) {

if ( /href|src/.test(name) && !jQuery.isXMLDoc(elem) )

return elem.getAttribute( name, 2 );

if ( name.indexOf(':') > -1 )

return ( elem.attributes[name] != undefined ? elem.getAttribute(name) : undefined );

} return elem.getAttribute( name );

Tried the above patch, does not fix the error in IE6, however this did fix a problem I was having in Safari on Windows XP. I was trying to use hover() and hoverIntent() on an unordered list, and neither worked - however this fix solved the problem

comment:3 Changed 15 years ago by jdsharp

This bug is still present in 1.2.2 and the same patch still applies.

comment:4 Changed 15 years ago by flesler

Milestone: 1.2.11.2.4
Resolution: fixed
Status: newclosed

Tested this with the trunk version, and it works fine. This was probably fixed with the recent massive modifications to .attr().

I tested on IE6.

comment:5 Changed 15 years ago by jdsharp

Resolution: fixed
Status: closedreopened

This issue still existed in 1.2.6, I've created a patch against trunk

Changed 15 years ago by jdsharp

Patch against 5711

comment:6 Changed 15 years ago by flesler

Owner: set to flesler
Status: reopenednew

comment:7 Changed 15 years ago by flesler

Status: newassigned

comment:8 Changed 14 years ago by moxiecode

Any progress on this one? It's been 8 months and I'm still able to reproduce this in jQuery 1.3.1.

comment:9 Changed 14 years ago by dmethvin

See the discussion in dup #3278

comment:10 Changed 12 years ago by danheberden

Milestone: 1.2.41.next

Still an issue - though IE9 fails on all three :/

http://jsfiddle.net/danheberden/YxRUP/

Version 0, edited 12 years ago by danheberden (next)

comment:11 Changed 12 years ago by Timmy Willison

What about http://jsfiddle.net/timmywil/YxRUP/2/? I don't have IE9 to test.

comment:12 Changed 12 years ago by Timmy Willison

Actually, still a problem in IE6 in that test.

comment:13 Changed 12 years ago by john

Owner: flesler deleted
Status: assignedopen

Updated version of the test case using jQuery git: http://jsfiddle.net/YxRUP/3/

comment:14 Changed 12 years ago by Timmy Willison

Owner: set to Timmy Willison
Priority: majorhigh
Status: openassigned

Dan's, John's, and my test cases all pass in IE9 so I don't think this is a problem in IE9, but it is a problem for IE6/7. Any attribute with a colon on a table element throws an "Invalid Argument" exception. I've created another test case as well. Working on a possible fix.

comment:15 Changed 12 years ago by Timmy Willison

Resolution: fixed
Status: assignedclosed

Test for a colon in attribute names for IE6/7. Fixes #1591.

Changeset: 24a8ffb3eae56345231931184891f25f6ce017cf

comment:16 Changed 12 years ago by Timmy Willison

Milestone: 1.next1.6

comment:17 Changed 12 years ago by john

Component: coreattributes
Note: See TracTickets for help on using tickets.