Skip to content

Commit

Permalink
Fixes #11938: Adding array getter method to jQuery.fn.css
Browse files Browse the repository at this point in the history
  • Loading branch information
mikesherov committed Dec 11, 2012
1 parent a918dc8 commit ef6d877
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/core.js
Original file line number Diff line number Diff line change
Expand Up @@ -798,7 +798,7 @@ jQuery.extend({
bulk = key == null;

// Sets many values
if ( key && typeof key === "object" ) {
if ( jQuery.type( key ) === "object" ) {
chainable = true;
for ( i in key ) {
jQuery.access( elems, fn, i, key[i], true, emptyGet, raw );
Expand Down
15 changes: 15 additions & 0 deletions src/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,21 @@ function showHide( elements, show ) {
jQuery.fn.extend({
css: function( name, value ) {
return jQuery.access( this, function( elem, name, value ) {
var styles, len,
map = {},
i = 0;

if ( jQuery.isArray( name ) ) {
styles = getStyles( elem );
len = name.length;

for ( ; i < len; i++ ) {
map[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );
}

return map;
}

return value !== undefined ?
jQuery.style( elem, name, value ) :
jQuery.css( elem, name );
Expand Down
16 changes: 16 additions & 0 deletions test/unit/css.js
Original file line number Diff line number Diff line change
Expand Up @@ -257,6 +257,22 @@ test("css(String, Object)", function() {
ok( success, "Setting RGBA values does not throw Error" );
});

test( "css(Array)", function() {
expect( 2 );

var expectedMany = {
"overflow": "visible",
"width": "16px"
},
expectedSingle = {
"width": "16px"
},
elem = jQuery("<div></div>").appendTo("#qunit-fixture");

deepEqual( elem.css( expectedMany ).css([ "overflow", "width" ]), expectedMany, "Getting multiple element array" );
deepEqual( elem.css( expectedSingle ).css([ "width" ]), expectedSingle, "Getting single element array" );
});

if ( !jQuery.support.opacity ) {
test("css(String, Object) for MSIE", function() {
expect( 5 );
Expand Down

0 comments on commit ef6d877

Please sign in to comment.