@Jay: > Not sure why you think we can ignore the scenario where the case of > the ID is different
You're absolutely right, we can't. I don't know why I thought that, either. :-) @kangax: > Does this also happen with a valid doctype? Gah! Good catch, kangax. No, it doesn't! All of the browsers work with the mixed case with a proper doctype, and FF, Safari, and Opera correctly return empty lists with we give the wrong case in our selector. IE6 still incorrectly finds the elements with the ID selector (though not with class selectors) when we give the wrong case. So there's an issue on IE, these two selectors work find element 'aBc1' when they shouldn't: $$('table#abc1') $$('#abc1') ...although these don't find the td.De class things when then shouldn't: $$('#abc1 td.de') $$('td.de') Jay, could you open a ticket on lighthouse for that?[1] I don't know that it'll get any kind of priority given how bad IE is about IDs in general (its document.getElementById also ignores case, and for that matter will happily return an element with the given value as a name rather than as an ID). But since Prototype does try to smooth out browser diffs. $('abc1'), since it uses the underlying document.getElementById, also has this case-insensitivity issue on IE. [1] http://prototypejs.org/contribute Thanks again for raising this, Jay. -- T.J. Crowder tj / crowder software / com On Nov 20, 4:11 am, kangax <[EMAIL PROTECTED]> wrote: > On Nov 19, 5:46 pm, Jay <[EMAIL PROTECTED]> wrote: > > > > > I was trying to scale down the example to the essence of the issue. Of > > course, $('Contents') should be interchangeable with $$('#Contents'), > > except that is the bug - it doesn't work on Safari or IE. In the real > > world, I might want the selector to be more like $$('table#tblTMRoster > > tbody tr td.countChecked'+i) - while there may be many tables with > > such cells, I only want one table's worth. Another bug for another day > > is this: even if there is only one table in the page, $$('tbody tr > > td.countChecked'+i) returns not only the td's in the tbody, but also > > the ones in the tfoot, and the only workaround I could come up with > > was to prepend the table id on the selector to make it work. > > > Finally, while one assumes id's ought to be unique, $$('#contents') > > returns an array of all elements with any case-variations like > > contents, Contents, conTents, whatever. At least that bug is on > > Safari, however not in Firefox nor IE. So again, if there is any way > > to make Prototype.js wrap up these browser inconsistencies, it would > > be a boon for the programmer. > > Does this also happen with a valid doctype? > > > > > Cheers, > > --Jay > > [...] > > -- > kangax --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Prototype & script.aculo.us" group. To post to this group, send email to prototype-scriptaculous@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/prototype-scriptaculous?hl=en -~----------~----~----~----~------~----~------~--~---