[whatwg] Desired Features for Web Applications

Ian Hickson ian at hixie.ch
Wed Apr 20 16:16:55 PDT 2005

On Wed, 20 Apr 2005, Brad Neuberg wrote:
> As someone who works with web application development, here's some of 
> the things that would make my life easier.  Also, including certain 
> methods as part of the standard that I usually have to roll on my own 
> would make things more standardized:

Thanks for your input!

> * Have a document.getByPath() method that takes an XPath expression to 
> traverse and find any nodes in the document; this would be _extremely_ 
> powerful and would erase a huge amount of boilerplate code needed for 
> walking over the DOM using the standard DOM traversal methods.  This 
> would have to be a fast implementation though or else it couldn't be 
> depended on.


I also hope to have a getElementsBySelector() method somewhere (either in 
DOM3 Style or in Web Apps, whichever I happen to edit first).

> * Have methods for traversing the DOM based on the 'class' attribute.  If you
> have XPath type traversal this is somewhat less needed, but I find myself
> rolling methods in most projects to work with my document by class name.
> Example methods I have rolled for myself along these lines:
>         * xGetElementsByClassName(rootElement, className, tagName) - Gets all
> the elements rooted at rootElement with the given className, optionally
> restricted by tagName


(Can't restrict by tag name, but that seems a bit arbitrary -- why not by 
attribute, or whatever? At that point you're back to getElementsBySelector 
or some such.)

>         * xGetSingleElementByClassName(rootElement, className, tagName) - Same
> as the above, but just returns one element

Just use getElementsByClass(...)[0]. (Since the returned NodeList is live, 
it can be lazily evaulated and thus would be no less efficient.)

>         * xGetParentElementByClassName(rootElement, className, tagName) -
> Navigates upwards until we hit a parent element with the given class name and
> optional tag name.

Interesting idea. Noted.

> * Formalization of innerHTML as being a standard part of creating web
> applications


> * Right now most people directly access an elements className property,
> without realizing that they might be clobbering multi-classed elements (i.e.
> something with class="class1 class2").  I usually have to create wrapper
> methods to ensure that this doesn't happen, such as xAddClass(target,
> className), xRemoveClass(target, className), and xHasClass(target, className),
> but it would be much nicer if the className property itself had better support
> for multi-classed elements.  Some example possibilities of what this might
> look like:
>         * someElement.className.add("someNewClass")
>         * someElement.className.remove("SomeOldClass")
>         * someElement.className.hasClass("someClass")

Agreed. Noted.

> * The lack of min-width and max-width in IE's CSS makes things difficult.

Not much we can do about this from a spec point of view.

Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

More information about the whatwg mailing list