jQuery is a Javascript library that can leave the beginner and even the expert puzzled about how best to achieve some result or other. For this reason a jQuery cookbook is a really good addition to your bookshelf because it can provide standard solutions to problems that are similar to your own.

This particular cookbook has the advantage of being written by a team of experts who are all active in the jQuery community - hence their credentials are good. A book written by a team does have the potential disadvantage of being uneven in treatment and this is certainly true of this collection. The good news is that that each author gets their name at the start of each chapter they wrote and this alerts the reader to the fact that chapters really are self contained essays. Another surprise is that there are no "weak" chapters - just different styles.

Although this is a cookbook it does make a very good attempt at teaching the basics of jQuery and the overall structure is from the introductory to the advanced and esoteric. It really isn't up to being a beginner's guide to jQuery and certainly not to Javascript - you need to know something about both before reading the book.

Some of the chapters suffer from the problem of presenting too much code. It really isn't necessary to present the entire HTML with a small chunk of jQuery embedded to show the reader exactly what the jQuery code does. In most cases just presenting the jQuery code and telling the reader what it does e.g. "extracts all <pr> tags" is sufficient and usually clearer. Some authors have adopted this condensed approach and, for me at least, the contrast proves the point that condensed is best.

Although the book starts off from the basics - selecting elements, manipulating the DOM etc - it very quickly gets more advanced. Topics include issues of performance, event handling, plugins, forms, the jQuery UI, Ajax and utilities. The final two chapters deal with using jQuery in "big" projects and unit testing. Both are worth reading even if your project is small and unit testing is not something you do.

If the book has a fault it is that it doesn't spend quite enough time on core jQuery techniques and many readers will also find that its coverage of Ajax techniques is too short. While core jQuery is a great success there are quite a few programmers who don't make use of its UI features, for example, and so will find the coverage of form enhancements, effects and theming off topic. Given how badly these aspects of jQuery are documented else where including them seems like a good idea and might encourage more to actually use them.

This book is recommended for all but the complete jQuery beginner and the more you know about jQuery and Javascript the more you will get out of reading it.