Niels, We are aware of this "issue". There's a relevant ticket in a trac - http://dev.rubyonrails.org/ticket/9739. Patch with unit tests are as always welcomed.
Best, kangax On Mar 29, 10:50 am, Niels Ganser <[EMAIL PROTECTED]> wrote: > Hi everyone, > > I have only recently started to extensively use and thus appreciate > Prototype. It sure makes an enjoyable (*gasp*!) experience out of > cross browser javascripting. So thanks to everybody involved in this > project! > > As I am only starting to dig into the codebase and leverage all of > prototype's features, I could be mistaken, but it appears as if CSS > selectors have been "dumbed down" in prototype's Selector class as > used by e.g. $$(). For instance I can't select an element using $$('#My > \\.Unusual\\.Id). > > In fact, a quick look into the latest released prototype.js shows the > following at line 2967: > id: /^#([\w\-\*]+)(\b|$)/ > which leads me to believe that none of the more funky CSS selector > stuff is possible. > > While it is true that the HTML specification is rather restrictive [1] > when it comes to ID tokens, the same cannot be said about CSS > selectors [2]. In any case, I think it is desirable to at least > support what we can do in HTML in this regard, namely: > <element id="Id01" /> => #Id01 > <element id="Id-02" /> => #Id-02 > <element id="Id_03" /> => #Id_03 > <element id="Id.04" /> => #Id\.04 > <element id="Id:05" /> => #Id\:05 > > With the last THREE not supported by prototype as far as I can see. > > In principle I would be willing to take a shot at implementing this if > somebody can provide me with a brief, high level overview about > Selector. This of course is unless a) I have simply overlooked > something and the functionality is already there (boy, that would be > embarrassing..), b) it was a deliberate, well thought out, decision > not to include this or c) somebody is already working on it. > > Any input welcome, > Cheers, > Niels. > > PS: Should this go into prototype-core? > > [1]:http://www.w3.org/TR/html401/types.html#h-6.2 > ID and NAME tokens must begin with a letter ([A-Za-z]) and may be > followed by any number of letters, digits ([0-9]), hyphens ("-"), > underscores ("_"), colons (":"), and periods ("."). > > [2]:http://www.w3.org/TR/REC-CSS2/syndata.html#q4 > * All CSS style sheets are case-insensitive, except for parts > that are not under the control of CSS. For example, the case- > sensitivity of values of the HTML attributes "id" and "class", of font > names, and of URIs lies outside the scope of this specification. Note > in particular that element names are case-insensitive in HTML, but > case-sensitive in XML. > * In CSS2, identifiers (including element names, classes, and IDs > in selectors) can contain only the characters [A-Za-z0-9] and ISO > 10646 characters 161 and higher, plus the hyphen (-); they cannot > start with a hyphen or a digit. They can also contain escaped > characters and any ISO 10646 character as a numeric code (see next > item). For instance, the identifier "B&W?" may be written as "B\&W\?" > or "B\26 W\3F". > > Note that Unicode is code-by-code equivalent to ISO 10646 (see > [UNICODE] and [ISO10646]). > * In CSS2, a backslash (\) character indicates three types of > character escapes. > > First, inside a string, a backslash followed by a newline is > ignored (i.e., the string is deemed not to contain either the > backslash or the newline). > > 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. > > Third, backslash escapes allow authors to refer to characters > they can't easily put in a document. In this case, the backslash is > followed by at most six hexadecimal digits (0..9A..F), which stand for > the ISO 10646 ([ISO10646]) character with that number. If a digit or > letter follows the hexadecimal number, the end of the number needs to > be made clear. There are two ways to do that: > 1. with a space (or other whitespace character): "\26 > B" ("&B") > 2. by providing exactly 6 hexadecimal digits: > "\000026B" ("&B") > > In fact, these two methods may be combined. Only one whitespace > character is ignored after a hexadecimal escape. Note that this means > that a "real" space after the escape sequence must itself either be > escaped or doubled. > * Backslash escapes are always considered to be part of an > identifier or a string (i.e., "\7B" is not punctuation, even though > "{" is, and "\32" is allowed at the start of a class name, even though > "2" is not). --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Spinoffs" group. To post to this group, send email to rubyonrails-spinoffs@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/rubyonrails-spinoffs?hl=en -~----------~----~----~----~------~----~------~--~---