Christof Donat schrieb:
> Hi,
>
>> $('[EMAIL PROTECTED]"my:elem"]')
>
> I guess, that that does not use getElementById() and thus is a lot slower
> than
> $('#my:elem'). I guess, that JSF might also have Problems with CSS, becaue
> there you use stuff like #my:hover, etc.
>
> To make the patch to jQuery as small as possible and let most existing code
> continue to work: How about something like this: $('#my\:elem') selects the
> Element with the ID "my:elem" whereas $('#my:elem') selects the Element with
> the ID "my" and uses :elem as custom selector. That could be achieved by
> simply changing the regular expression, Manfred named to
> /^([#.]?)(([a-z0-9\\*_-]|\\:)*)/i
>
> Christof
I didn't like the idea of hacking jQuery to make selectors with these
special chars work, but as it turned out, that is what should be
expected! From the CSS spec:
In CSS 2.1, a backslash (\) character indicates three types of
character escapes.
[...]
*Second, it cancels the meaning of special CSS characters.* Any
character (except a hexadecimal digit) can be escaped with a backslash
to remove its special meaning. For example, "\"" is a string consisting
of one double quote. Style sheet preprocessors must not remove these
backslashes from a style sheet since that would change the style sheet's
meaning.
http://www.w3.org/TR/CSS21/syndata.html#q6
Thus, I think a selector like "#my\:elem" is perfectly valid and that
should be part of jQuery's selector engine...
-- Klaus
_______________________________________________
jQuery mailing list
[email protected]
http://jquery.com/discuss/