On Mon, Jan 17, 2011 at 10:54 PM, Diego Perini <[email protected]>wrote:
> On Mon, Jan 17, 2011 at 11:52 PM, Miller Medeiros > <[email protected]> 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..). cheers. -- To view archived discussions from the original JSMentors Mailman list: http://www.mail-archive.com/[email protected]/ To search via a non-Google archive, visit here: http://www.mail-archive.com/[email protected]/ To unsubscribe from this group, send email to [email protected]
