W3C home > Mailing lists > Public > whatwg@whatwg.org > September 2005

[whatwg] getElementsByClassName()

From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
Date: Mon, 05 Sep 2005 08:48:59 +1000
Message-ID: <431B79DB.9080201@lachy.id.au>
Anne van Kesteren wrote:
> Quoting Kornel Lesinski <kornel at ideadesigners.com>:
> 
>> It will also solve IMHO unclear case of getElementsByClassName("foo 
>> bar")  matching "bar foo". It would, as opposed to behavior where 
>> space is both  separator and part of class name.
> 
> This is not how the CLASS attribute works. "foo bar" means the element 
> has two classes bound to it, "foo" and "bar". With your syntax,
> getElementsByClassName("bar foo") would also need to match an element 
> with "foo bar" as value for the CLASS attribute.

The problem is that white space handling in parameter values isn't
currently defined at all, and I implemented it assuming that each
parameter value would contain only one class name.  Handling the
(currently) erroneous parameter ("foo bar")is basically a form of error
recovery, and the fact that it returns anything at all is merely a
result of how the regex is constructed using it.

Before I can fix the implementation in any way, I need to know how white
space should be handled before (" foo"), after ("foo ") and inside ("foo
bar") the parameter value.  At the moment I trim any leading and
trailing spaces in most cases (there's currently a bug that stops it
working sometimes), but I don't really handle white space inside very well.

("foo bar") could basically be handled in the following ways and I need
to know which:

1. Equivalent to ("foo", "bar") (or [class~=foo][class~=bar], or
    .foo.bar in CSS)
2. The way it currently works. ie. matches "foo bar", not "bar foo"
3. Error, return nothing.

-- 
Lachlan Hunt
http://lachy.id.au/
Received on Sunday, 4 September 2005 15:48:59 UTC

This archive was generated by hypermail 2.3.1 : Monday, 13 April 2015 23:08:24 UTC