![Javascript](assets/m9_sidebar.jpg)
jQuery
As we've seen, Javascript doesn't go out of its way to make things easy for the designer/developer. Traversing the DOM using Javascript is a cumbersome affair. CSS provides selectors that allow scalpel-like precision element selection. But there is no corresponding way to do that with Javascript. It is easy enough to grab a node by its id, or grab tags, but there is no way to easily collect elements by their class names without having to write custom utility functions.
Javascript isn't fully cross-platform. The browsers all implement Javascript just a bit differently, making development frustrating and cumbersome. You can easily end up having to write multiple versions of your logic to accommodate all the browsers you need to support. Writing transition effects are way beyond the skill level of most designers and front-end developers.
This is where Javascript libraries step in to make life easier. Libraries are pre-written bundles of Javascript that erase the browser differences and provide extra, built-in functionality. They make web development a much easier and more creative process. There are many great libraries out there -- like Dojo, Moo Tools, Prototype, script.aculo.us, and of course jQuery.
The jQuery library was written with the designer in mind. It makes navigating the DOM easy and intuitive. It provides a host of wonderful, built-in effects and makes animations simple to set up. It is one of the most popular libraries in use today. It has an active, creative developer community. This means that there are constant improvements to the library -- and people all over the world writing widgets and plug-ins that they are happy to share with you for free.