1. Introduce a "chaining" API.
2. Paper over the differences between how browsers implemented the DOM, with events being the big issue.
Note that the DOM is not JavaScript and JavaScript is not the DOM. The DOM is a language-agnostic API for manipulating markup-based documents.
http://www.herongyang.com/VBScript/IE-Browser-DOM-API-Docume...
Also you can use XSLT to create a new DOM tree in a browser from an XML document.
http://www.informit.com/articles/article.aspx?p=24032&seqNum...
EDIT: I forgot about JScript vs JavaScript vs ECMAScript.
https://johnresig.com/blog/versions-of-javascript/
However much of this isn't relevant today.
The solution (for CRUD makers) is to make common desktop GUI idioms part of a standard instead of emulate them all. This includes but is not limited to: MDI windowing (as an option), modal panels, drop-down menus, tabs, combo boxes, editable column-expandable data grids, expandable trees, tool bars, and a decent multi-select widget instead of using (just) the Ctrl key. HTML frames were helpful, but have since been deprecated. Somebody found them too useful? Mobile land is too different from desktop land. Forcing a lowest common denominator is bad for business IT productivity.