[whatwg] Desired Features for Web Applications

Anne van Kesteren fora at annevankesteren.nl
Wed Apr 20 11:25:42 PDT 2005

Brad Neuberg wrote:
> * 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.


> * 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
>         * xGetSingleElementByClassName(rootElement, className, tagName) 
> - Same as the above, but just returns one element
>         * xGetParentElementByClassName(rootElement, className, tagName) 
> - Navigates upwards until we hit a parent element with the given class 
> name and optional tag name.


> * 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")

This would be useful.

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

There are hacks for this.

  Anne van Kesteren

More information about the whatwg mailing list