Revision 3a04a1ba-4d37-481a-9048-a6405c5bb481 - Stack Overflow
Yes, you can do that:
$('.obj').get(0).key = 'value';
or
$('.obj').get(0)['key'] = 'value'
Though it's better to use [`.data()`](http://api.jquery.com/data):
$('.obj').data('key', 'value');
---
### Tips
**1.** You can chain multiple calls, like this:
$('.obj').css('color', 'red').data('key', 'value');
**2.** You can pass an object to `.css()`:
$('.obj').css({
'width': 100,
'height': 100
});
**3.** If you don't change other CSS properties, you can use `.width()`and `.height()` to set and get an element's width:
### HTML
<div id='box'></div>
### CSS
#box {
width: 200px;
height: 100px;
}
### JavaScript
var $box = $('#box');
// 200x100
alert( $box.width() + 'x' + $box.height() );
**4.** You may have noticed in the previous example that I saved a reference to `$('#box')` in a variable. There are some cases when you can't use chaining, like this:
var $box = $('#box');
setTimeout(function() {
$box.animate({ 'width': 100 }, 100);
}, 1000);
setTimeout(function() {
$box.animate({ 'height': 200 }, 100);
}, 1000);
If you have to do that, **always** save a reference to the element – that's called caching. Otherwise jQuery would have to search for it multiple times.