- From: Ian Hickson <ian@hixie.ch>
- Date: Thu, 10 Oct 2013 18:41:46 +0000 (UTC)
- To: Glenn Maynard <glenn@zewt.org>
- Cc: whatwg <whatwg@lists.whatwg.org>, Boris Zbarsky <bzbarsky@mit.edu>
On Wed, 9 Oct 2013, Glenn Maynard wrote:
> On Wed, Oct 9, 2013 at 7:02 PM, Boris Zbarsky <bzbarsky@mit.edu> wrote:
> > On 6/28/13 10:01 PM, Boris Zbarsky wrote:
> >> On 6/28/13 5:06 PM, Tab Atkins Jr. wrote:
> >>
> >>> getElementById("foo") is just querySelector("#foo")
> >>
> >> This is actually false. For example, getElementById("foo:bar") is
> >> just querySelector("#foo\\:bar"), which is ... nonobvious.
> >
> > And today someone asked me how to do the equivalent of
> > getElementById("\n") with querySelector. That one is even more
> > non-obvious.
>
> But it's already been suggested--by you--that we need a function to
> CSS-escape a string, which seems to solve the that problem trivially
> (for users).
Leaving aside the issue that "CSS-escape" is more than one operation
depending on what kind of token you're creating, I don't think it's
actually as trivial as you think.
document.getElementById(id)
...becomes:
document.querySelector('#' + escapeCSSIdent(id))
...which is a lot less pretty and understandable, especially when you
consider that many authors are actually coming from:
document.all[id]
...which is briefer than either, and still self-explanatory.
I feel this is a case where we're not putting authors first, but are
instead putting spec purity first.
--
Ian Hickson U+1047E )\._.,--....,'``. fL
http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,.
Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Thursday, 10 October 2013 18:42:10 UTC