[whatwg] Re: getElementsByClassName

Ian Hickson wrote:
> On Sun, 4 Sep 2005, Lachlan Hunt wrote:
>>It also includes Element.hasClassName(), Element.addClassName() and 
>>Element.removeClassName(), which I think should also be added to WA1.
> 
> I envisage somehow making className implement the DOMTokenString 
> interface:
> 
>    http://whatwg.org/specs/web-apps/current-work/#domtokenstring
> 
> ...so that you would have Element.className.add(), 
> Element.className.has(), etc.

Cool, I'll see what I can do about implementing that.  I think I may be 
able to extend the String() object quite easily for that, though I'll 
have to think about it a little more.

>>What should each of these function calls return?  I've listed the ones that my
>>script currently selects.  Are any of them incorrect?
>>
>>04. getElementsByClassName(" foo");       | A, B, C, D, E, F, G
>>05. getElementsByClassName("foo ");       | A, B, C, D, E, F, G
>>06. getElementsByClassName(" foo ");      | A, B, C, D, E, F, G
>>07. getElementsByClassName("foo bar");    | E, F
> 
> Incorrect; none of the above elements are in classes that have a space 
> character in the class name.

Fixed.  All of those now return none, the other results are unchanged.

>>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.
> 
> What if an element is in the class "foo bar"?

So, you're saying that it's possible that some hypothetical langauge may 
define a class attribute with any character as the delimiter, not just 
white space?  So, for example, a language could use semi-colons like 
this: foo:class="foo bar;baz" and thus, for that language, gEBCN("foo 
bar") would match that?  In which case, would it be worth adding a note 
to the spec stating that implementations should not assume that all 
languages will use white space delimiters between class names?

> On Mon, 5 Sep 2005, Lachlan Hunt wrote:
> 
>>The problem is that white space handling in parameter values isn't 
>>currently defined at all...
> 
> The spec now defines this better. Basically, "foo bar" would never match 
> anything in HTML, XHTML, MathML or SVG.

Thanks, that's much better.

>>At the moment I trim any leading and trailing spaces...
> 
> The spec doesn't mention trimming, so, no trimming. :-)

Ok, trimming removed.

-- 
Lachlan Hunt
http://lachy.id.au/

Received on Monday, 5 September 2005 15:19:11 UTC