Matt's DOM Utils Matt's DOM Utils (Utils)


Utils was created for a multitude of reasons. The first of which was a disgust for the current state of “popular” HTML DOM scripting (i.e. DOM “selectors”); the second of which was to allow developers everywhere that choose not to support “inadequate” browsers, sometimes out of spite, to support as many browsers as possible; the third of which was to dispel fear and uncertainty of the DOM API by providing a clean, concise API as an intermediary; the final of which was a long period of unemployment with a glaring need for a showcase project.

Furthermore, Utils was created to transform HTML DOM scripting. By eschewing DOM “selectors” for wrapped DOM selection methods and highly customizable callbacks, developers regain control of traversal and are freed from the behest of RegExp string parsers and CSS engines. This strategy allows for very powerful traversal, which is subjectively easy to understand and far more "native" to developers.

Moreover, Utils treats non-element nodes with care and respect. Traversal methods are provided for unfiltered trees, allowing for a full, representative view of the document tree.

The primary tenet of Utils is “Graceful Degradation”. Whereas “Graceful Degradation” is easily achieved with HTML and CSS, “Graceful Degradation” with HTML DOM scriping is far more difficult.

Utils is written in a very defensive style borne of research both from tests and documentation. Every environment is treated with an objective eye; there is no code written to specifically pander to or castigate an environment.