jQuery: The Write Less, Do More JavaScript Library

These are all non-trivial, cross-browser, problems that exist with the interaction between JavaScript and HTML. jQuery is setting out to solve as many as possible.

Solutions for some of these problems may exist already (such as Dean Edwards' addEvent function), whereas others have yet to be solved by anyone (animating table rows).

Some solutions were originally developed as part of jQuery (Such as having a domReady function, browser-duplicate form serialization, AJAX request caching, and animating elements to a size of auto).

Unsolved:

  • Animating the height of table rows.
  • Animating the width of a table column
  • Gracefully animating fieldsets
  • True event triggering
  • A unified event object
  • Injecting random HTML sub-fragments into an HTML DOM (e.g. An AJAX request returns an HTML page - get the contents of the element with an ID of #foo and insert it into #bar).
  • Unit-insensitive animations (e.g. using EMs or percentages)
  • Detecting network disconnect in an AJAX request
  • Applying old DOM changes to new HTML .load()ed in.

In Progress:

  • Getting/setting attributes (both DOM 0 and DOM-based, such as 'selected' and 'href').
  • ID Selectors in XML DOM documents

Solved:

  • Appending, or inserting, HTML-based <option> elements onto a <select> list.
  • Getting the height of an element that is display: none.
  • Getting the computed value of a CSS property
  • Getting the correct height and width of an element
  • Setting/Getting Opacity on an element
  • Inserting raw HTML into a random point in the DOM.
  • Inserting raw HTML <tr>, <td>, <th>, <tbody>, and <thead> elements, correctly into the DOM.
  • Getting the innerText of any DOM element.
  • Getting the outerHTML of any DOM element (see: toXML plugin)
  • Having JavaScript execute the moment the DOM is ready.
  • Browser-duplicate form serialization (see: forms plugin)
  • Event handling
  • Any depth element hovering
  • AJAX Timeouts
  • Full AJAX request caching (HTTP Not Modified)
  • Animating elements to a size equivalent to 'auto'