On 1/17/11, Miller Medeiros <lis...@millermedeiros.com> wrote:
> On Mon, Jan 17, 2011 at 10:54 PM, Diego Perini
> <diego.per...@gmail.com>wrote:
>
>> On Mon, Jan 17, 2011 at 11:52 PM, Miller Medeiros
>> <lis...@millermedeiros.com> wrote:
>> > >
>> > $('#my-check-box').attr('checked', true);  -> should work cross browser
>> if
>> > it is a checkbox.
>> >
>> > and you can check if a checkbox is checked by using
>> > `$('#my-check-box').is(':checked')`...
>> >
>>
>> these two $() statements alone deserve a long chapter by themselves to
>> exactly explain all the inconsistencies that may arise by using them
>> together (probably even for checkboxes). There is also a problem with
>> mixing strings and booleans to consider in your example (or in jQuery
>> anyway).
>>
>> Comparing values obtained by direct DOM properties access
>> (pseudo-selector) with values obtained by accessing HTML attributes
>> through getter/setter in that way is scary at best (maybe worth a
>> digest in JSMentors).
>>
>>
> I would like to know the reason besides the fact that I passed `true`
> instead of 'checked' - which I believe works just fine.. - and used
> `is(':checked')` instead of  `attr('checked')` - which I agree is kinda
> weird.
>
> I have no idea how jQuery handles those things internally, but depending on
> how the `is(':checked')` is implemented there shouldn't be any
> inconsistencies (if it really checks the proper attribute instead of doing a
> selector query..).
>
DOn't know what you mean.

The important thing to remember: Attributes != properties.

el.getAttribute("checked"); // attribute value.
el.checked; // property value.

In most cases you'll want the property value, so just use that. A
wrapper that tries to abstract reading all attributes or all
properties from every element in all browsers will be complicated and
probably have problems in some cases.
-- 
Garrett

-- 
To view archived discussions from the original JSMentors Mailman list: 
http://www.mail-archive.com/jsmentors@jsmentors.com/

To search via a non-Google archive, visit here: 
http://www.mail-archive.com/jsmentors@googlegroups.com/

To unsubscribe from this group, send email to
jsmentors+unsubscr...@googlegroups.com

Reply via email to