From 6f676e692d48b4f979ba1dfc5d10f3f16954b381 Mon Sep 17 00:00:00 2001 From: timmywil Date: Thu, 12 May 2011 19:42:53 -0400 Subject: [PATCH] Use prop to retrieve boolean properties (so the selected hook will be used) --- src/attributes.js | 2 +- test/unit/attributes.js | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/attributes.js b/src/attributes.js index bc26d735a..f1d2944e2 100644 --- a/src/attributes.js +++ b/src/attributes.js @@ -466,7 +466,7 @@ jQuery.extend({ boolHook = { get: function( elem, name ) { // Align boolean attributes with corresponding properties - return elem[ jQuery.propFix[ name ] || name ] ? + return jQuery.prop( elem, name ) ? name.toLowerCase() : undefined; }, diff --git a/test/unit/attributes.js b/test/unit/attributes.js index d2d43475d..efeb46e48 100644 --- a/test/unit/attributes.js +++ b/test/unit/attributes.js @@ -40,7 +40,7 @@ test("jQuery.attrFix/jQuery.propFix integrity test", function() { }); test("attr(String)", function() { - expect(37); + expect(38); equals( jQuery("#text1").attr("type"), "text", "Check for type attribute" ); equals( jQuery("#radio1").attr("type"), "radio", "Check for type attribute" ); @@ -92,6 +92,12 @@ test("attr(String)", function() { body.removeAttribute("foo"); // Cleanup + var select = document.createElement("select"), optgroup = document.createElement("optgroup"), option = document.createElement("option"); + optgroup.appendChild( option ); + select.appendChild( optgroup ); + + equal( jQuery( option ).attr("selected"), "selected", "Make sure that a single option is selected, even when in an optgroup." ); + var $img = jQuery("").appendTo("body"); equals( $img.attr("width"), "215", "Retrieve width attribute an an element with display:none." ); equals( $img.attr("height"), "53", "Retrieve height attribute an an element with display:none." );