- Construct regex for all attributes which are boolean attributes by specification.
+ This allows us to do what users expect with enumerated attributes and allows us to no longer complicate the issue.
+ People are just too confused with passing "true" instead of true when they should, so we won't have to worry about that anymore.
- Modularize code for dealing with boolean attributes into a separate hook to keep attr short and fast.
- Having fixed this automatically with the use of removeAttribute in browsers that support it, this will fix it for IE6/7 as well.
- This has no effect on width/height styles set elsewhere( test added to removeAttr )
- With this addition, I need to call attr in removeAttr for IE6/7, which means boolean calls like .attr("checked", "") will no longer remove the attribute, which I think is fine. .attr("checked", false) will still remove. If I had left it, it would have gone in an infinite loop since setting to empty string is the only way to remove it in these browsers.
- The hrefNormalized hooks were returning null if they weren't present. Added the null check to the getter.
- Now that the style support fails in IE8 as well due to uppercasing everything, no need to have style included with the hrefNormalized hooks
- Style is now a special case in IE6/7 to set cssText. My goal is to avoid calling attr again for the performance benefit, and at this point it would also cause an infinite loop for the boolean attributes hooks such as selected & checked. Nevertheless, style seems to be the only one requiring a special call.
- Normalize set value to string to synchronize return type cross-browser
- Add style attrHook to propHooks to support style getting in all browsers for both attr and prop
- Extend the selected propHook instead of overriding a possible set function
- Remove selected propHook TODO since there is no selected content attribute and it should return null
- Forms with an input that has either name="action" or name="some-other-attr-on-the-form" caused problems in IE6/7. This is fixed.
- Changed check in $.attr for ret === null to typeof ret === "object" to catch any inputs that are accidentally retrieved in IE6/7, since attributes cannot be set to objects and typeof null === "object"