Thanks very much for pointing me in the right direction on this. I
wonder if there should be somewhere a caveat to the effect that $$
will only work correctly with a proper doctype. Are there other
features of prototype or scriptaculous with a similar dependency?.
I'll look after getting the ticket open, as well as finding out more
about the doctype directive. This is a very responsive list, and I
really appreciate the help.

--Jay

On Nov 20, 3:57 am, "T.J. Crowder" <[EMAIL PROTECTED]> wrote:
> @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
-~----------~----~----~----~------~----~------~--~---

Reply via email to