Re: [Element Traversal LC] access to element by index

On Mar 28, 2008, at 16:42, Daniel Glazman wrote:
> 2. the ElementTraversal interface has a |childElementCount| attribute
>   but misses access to an individual childElement based on its index.
>   That would be really useful. Two solutions here :
>
>   a. you remove the childElementCount attribute in favor of a
>
>        readonly attribute NodeList    childElements;
>
>      and that NodeList has all we need
>
>   b. you add
>
>        Node    item(in unsigned long index);
>
>      but that is not really consistent with the existing way of
>      querying list of nodes.
>
>   My very strong preference goes to solution a.

c. just remove the childElementCount attribute

It seems to me that checking if an element has *any* element children  
is going to be the most common use case for childElementCount and that  
can be checked by checking if firstElementChild is null.

I very much like the idea having firstElementChild, lastElementChild,  
previousElementSibling, nextElementSibling. In particular, I think using
var e = p.firstElementChild;
while (e != null) {
   ...
   e = e.nextElementChild
}
to iterate over child elements is a cleaner idiom than introducing an  
index that isn't used for random access but only for forward iteration.

How often do people pick a single child by index (with a number know a  
priori) instead of iterating over children and testing each one for an  
interesting trait?

-- 
Henri Sivonen
hsivonen@iki.fi
http://hsivonen.iki.fi/

Received on Tuesday, 1 April 2008 14:37:30 UTC