On Fri, 03 Feb 2006 15:31:37 +0200, Ric Hardacre <[EMAIL PROTECTED]>
wrote:
this also raises the possibility of some confusion as the order of
inheritance is important:
foo
{
color: red;
}
bar
{
color: blue;
}
in the quoted example Fred and Wilma would be blue and barney red. so
the distinction between class="foo bar" and class="bar foo" is real, not
merely syntactic. a search for "foo" should pick up either but a search
for "foo bar" should only find the first, so IMO a comma seperated list
would be better in that respect:
1. getElementsByClassName("foo bar,foo tang,woo tang")
this use of explicit class matching could, however be considered an
"advanced" use of the function, with emphasis on the simpler:
2. getElementsByClassName("bar,tang")
as an aside this then yields another level of even more complex
behavioural possibilities:
3. getElementsByClassName("foo>bar")
though in this example the ClassName, having not being explicitly
declared in the markup. is not what is being selected, but a derived
inheritance, perhaps warranting a new function
4. getElementsByRelationship("foo:firstChild")
what this would mean, therefore is that
5. <div class="foo bar">
would be selected by example 1. whereas
6. <div class="foo"><div class="bar">
would be selected by example 3. specifically and example 4. if the
designer wanted to make assumptions about the resuting DOM
Ric
This is way too wild :).
A comma separated list, or any list separated by any other character can't
be used. The reason has been over-stated (search the mailing list):
basically who what if some other styling language defines that class names
can contain the space char, or the comma char?
AFAIK, Ian said that something like getElementsCSSselector() is something
for the CSS WG from W3C. Defining getElementsByRelationship() would
already "touch" that subject. He only wants to define
getElementsByClassNames().
--
http://www.robodesign.ro
ROBO Design - We bring you the future