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