jQuery 1.4 Reference Guide - Jonathan Chaffer - E-Book

jQuery 1.4 Reference Guide E-Book

Chaffer Jonathan

0,0
31,19 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

If you are looking for a comprehensive reference guide to this popular JavaScript library, this book and eBook is for you.

To make optimal use of jQuery, it's good to keep in mind the breadth of capabilities it provides. You can add dynamic, interactive elements to your sites with reduced development time using jQuery.Revised and updated for version 1.4 of jQuery, this book offers an organized menu of every jQuery method, function, and selector. Each method and function is introduced with a summary of its syntax and a list of its parameters and return value, followed by a discussion, with examples where applicable, to assist in getting the most out of jQuery and avoiding the pitfalls commonly associated with JavaScript and other client-side languages.In this book you will be provided information about the latest features of jQuery that include Sizzle Selector, Native event delegation, Event triggering, DOM manipulation, and many more. You won't be confined to built-in functionality, you'll be able to examine jQuery's plug-in architecture and we discuss both how to use plug-ins and how to write your own. If you're already familiar with JavaScript programming, this book will help you dive right into advanced jQuery concepts. You'll be able to experiment on your own, trusting the pages of this book to provide information on the intricacies of the library, where and when you need it.This book is a companion to Learning jQuery 1.3. Learning jQuery 1.3 begins with a tutorial to jQuery, where the authors share their knowledge, experience, and enthusiasm about jQuery to help you get the most from the library and to make your web applications shine.jQuery 1.4 Reference Guide digs deeper into the library, taking you through the syntax specifications and following up with detailed discussions. You'll discover the untapped possibilities that jQuery 1.4 makes available, and polish your skills as you return to this guide time and again.

Das E-Book können Sie in Legimi-Apps oder einer beliebigen App lesen, die das folgende Format unterstützen:

EPUB

Seitenzahl: 348

Veröffentlichungsjahr: 2010

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

jQuery 1.4 Reference Guide
Credits
About the Authors
About the Reviewers
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Errata
Piracy
Questions
1. Anatomy of a jQuery Script
A dynamic table of contents
Obtaining jQuery
Setting up the HTML document
Writing the jQuery code
Script dissection
Selector expressions
DOM traversal methods
DOM manipulation methods
Event methods
Effect methods
AJAX methods
Miscellaneous methods
Plug-in API
Summary
2. Selector Expressions
CSS selectors
Element (T)
Examples
Description
ID (#myid)
Examples
Description
Class (.myclass)
Examples
Description
Descendant (E F)
Examples
Description
Child (E > F)
Examples
Description
Adjacent sibling (E + F)
Examples
Description
General sibling (E ~ F)
Examples
Description
Multiple expressions (E, F, G)
Examples
Description
Numbered child (:nth-child(n/even/odd/expr))
Examples
Description
First child (:first-child)
Examples
Description
Last child (:last-child)
Examples
Description
Only child (:only-child)
Examples
Not (:not(E))
Examples
Empty (:empty)
Examples
Description
Universal (*)
Examples
Description
Attribute selectors
Attribute ([foo])
Examples
Attribute equals ([foo=bar])
Examples
Description
Attribute does not equal ([foo!=bar])
Examples
Description
Attribute begins with ([foo^=bar])
Examples
Description
Attribute ends with ([foo$=bar])
Examples
Attribute contains ([foo*=bar])
Examples
Description
Attribute contains word ([foo~=bar])
Examples
Description
Attribute contains prefix ([foo|=bar])
Examples
Description
Form selectors
Custom selectors
Element at index (:eq(n))
Examples
Description
Greater than (:gt(n))
Examples
Description
Less than (:lt(n))
Examples
Description
First (:first)
Examples
Description
Last (:last)
Examples
Description
Even element (:even)
Examples
Description
Odd element (:odd)
Examples
Description
Is parent (:parent)
Examples
Description
Contains text (:contains(text))
Examples
Description
Contains element (:has(E))
Examples
Description
Visible (:visible)
Examples
Description
Hidden (:hidden)
Examples
Description
Header element (:header)
Examples
Currently animating (:animated)
Examples
3. DOM Traversal Methods
The jQuery function
$()
Parameters (first version)
Parameters (second version)
Parameters (third version)
Parameters (fourth version)
Parameters (fifth version)
Return value
Description
Selector context
Using DOM elements
Cloning jQuery objects
Creating new elements
Filtering methods
.filter()
Parameters (first version)
Parameters (second version)
Return value
Description
Using a filter function
.not()
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value
Description
Removing specific elements
.has()
Parameters
Return value
Description
.eq()
Parameters
Return value
Description
.first()
Parameters
Return value
Description
.last()
Parameters
Return value
Description
.slice()
Parameters
Return value
Description
Negative indices
Tree traversal methods
.find()
Parameters
Return value
Description
.children()
Parameters
Return value
Description
.parents()
Parameters
Return value
Description
.parentsUntil()
Parameters
Return value
Description
.parent()
Parameters
Return value
Description
.closest()
Parameters
Return value
Description
.offsetParent()
Parameters
Return value
Description
.siblings()
Parameters
Return value
Description
.prev()
Parameters
Return value
Description
.prevAll()
Parameters
Return value
Description
.prevUntil()
Parameters
Return value
Description
.next()
Parameters
Return value
Description
.nextAll()
Parameters
Return value
Description
.nextUntil()
Parameters
Return value
Description
Miscellaneous traversal methods
.add()
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value
Description
.is()
Parameters
Return value
Description
.end()
Parameters
Return value
Description
.andSelf()
Parameters
Return value
Description
.map()
Parameters
Return value
Description
.contents()
Parameters
Return value
Description
4. DOM Manipulation Methods
General attributes
.attr() (getter)
Parameters
Return value
Description
.attr() (setter)
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value
Description
Setting a simple attribute
Setting several attributes at once
Computed attribute values
.removeAttr()
Parameters (first version)
Parameters (second version)
Return value
Description
Style properties
.css() (getter)
Parameters
Return value
Description
.css() (setter)
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value
Description
.height() (getter)
Parameters
Return value
Description
.height() (setter)
Parameters
Return value
Description
.innerHeight()
Parameters
Return value
Description
.outerHeight()
Parameters
Return value
Description
.width() (getter)
Parameters
Return value
Description
.width() (setter)
Parameters
Return value
Description
.innerWidth()
Parameters
Return value
Description
.outerWidth()
Parameters
Return value
Description
.offset() (getter)
Parameters
Return value
Description
.offset() (setter)
Parameters
Return value
Description
.position()
Parameters
Return value
Description
.scrollTop() (getter)
Parameters
Return value
Description
.scrollTop() (setter)
Parameters
Return value
.scrollLeft() (getter)
Parameters
Return value
Description
.scrollLeft() (setter)
Parameters
Return value
Class attributes
.hasClass()
Parameters
Return value
Description
.addClass()
Parameters (first version)
Parameters (second version)
Return value
Description
.removeClass()
Parameters (first version)
Parameters (second version)
Return value
Description
.toggleClass()
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value
Description
DOM replacement
.html() (getter)
Parameters
Return value
Description
.html() (setter)
Parameters (first version)
Parameters (second version)
Return value
Description
.text() (getter)
Parameters
Return value
Description
.text() (setter)
Parameters (first version)
Parameters (second version)
Return value
Description
.val() (getter)
Parameters
Return value
Description
.val() (setter)
Parameters (first version)
Parameters (second version)
Return value
Description
.replaceWith()
Parameters
Return value
Description
.replaceAll()
Parameters
Return value
Description
DOM insertion, inside
.prepend()
Parameters (first version)
Parameters (second version)
Return value
Description
.prependTo()
Parameters
Return value
Description
.append()
Parameters (first version)
Parameters (second version)
Return value
Description
.appendTo()
Parameters
Return value
Description
DOM insertion, outside
.before()
Parameters (first version)
Parameters (second version)
Return value
Description
.insertBefore()
Parameters
Return value
Description
.after()
Parameters (first version)
Parameters (second version)
Return value
Description
.insertAfter()
Parameters
Return value
Description
DOM insertion, around
.wrap()
Parameters (first version)
Parameters (second version)
Return value
Description
.wrapAll()
Parameters
Return value
Description
.wrapInner()
Parameters (first version)
Parameters (second version)
Return value
Description
DOM copying
.clone()
Parameters
Return value
Description
DOM removal
.empty()
Parameters
Return value
Description
.remove()
Parameters
Return value
Description
.detach()
Parameters
Return value
Description
.unwrap()
Parameters
Return value
Description
5. Event Methods
Event handler attachment
.bind()
Parameters
Return value
Description
Event handlers
The event object
Passing event data
.unbind()
Parameters (first version)
Parameters (second version)
Return value
Description
Using namespaces
Using the event object
.one()
Parameters
Return value
Description
.trigger()
Parameters
Return value
Description
.triggerHandler()
Parameters
Return value
Description
.live()
Parameters
Return value
Description
Event delegation
Caveats
.die()
Parameters
Return value
Description
Document loading
.ready()
Parameters
Return value
Description
Aliasing the jQuery namespace
.load()
Parameters
Return value
Description
.unload()
Parameters
Return value
Description
.error()
Parameters
Return value
Description
Mouse events
.mousedown()
Parameters (first version)
Return value
Description
.mouseup()
Parameters (first version)
Return value
Description
.click()
Parameters (first version)
Return value
Description
.dblclick()
Parameters (first version)
Return value
Description
.toggle()
Parameters
Return value
Description
.mouseover()
Parameters (first version)
Return value
Description
.mouseout()
Parameters (first version)
Return value
Description
.mouseenter()
Parameters (first version)
Return value
Description
.mouseleave()
Parameters (first version)
Return value
Description
.hover()
Parameters
Return value
Description
.mousemove()
Parameters (first version)
Return value
Description
Form events
.focus()
Parameters (first version)
Return value
Description
.blur()
Parameters (first version)
Return value
Description
.change()
Parameters (first version)
Return value
Description
.select()
Parameters (first version)
Return value
Description
.submit()
Parameters (first version)
Return value
Description
Keyboard events
.keydown()
Parameters (first version)
Return value
Description
.keypress()
Parameters (first version)
Return value
Description
.keyup()
Parameters (first version)
Return value
Description
Browser events
.resize()
Parameters (first version)
Return value
Description
.scroll()
Parameters (first version)
Return value
Description
6. Effect Methods
Pre-packaged effects
.show()
Parameters
Return value
Description
.hide()
Parameters
Return value
Description
.toggle()
Parameters (first version)
Parameters (second version)
Return value
Description
.slideDown()
Parameters
Return value
Description
.slideUp()
Parameters
Return value
Description
.slideToggle()
Parameters
Return value
Description
.fadeIn()
Parameters
Return value
Description
.fadeOut()
Parameters
Return value
Description
.fadeTo()
Parameters
Return value
Description
Customized effects
.animate()
Parameters (first version)
Parameters (second version)
Return value
Description
.stop()
Parameters
Return value
Description
.delay()
Parameters
Return value
Description
.queue()
Parameters (first version)
Parameters (second version)
Parameters (third version)
Return value (first version)
Return value (second and third versions)
Description
.dequeue()
Parameters
Return value
Description
.clearQueue()
Parameter
Return value
Description
7. AJAX Methods
Low-level interface
$.ajax()
Parameters
Return value
Description
Callback functions
Data types
Sending data to the server
Advanced options
$.ajaxSetup()
Parameters
Return value
Description
Shorthand methods
$.get()
Parameters
Return value
Description
.load()
Parameters
Return value
Description
Loading page fragments
$.post()
Parameters
Return value
Description
$.getJSON()
Parameters
Return value
Description
$.getScript()
Parameters
Return value
Description
Global AJAX event handlers
.ajaxComplete()
Parameters
Return value
Description
.ajaxError()
Parameters
Return value
Description
.ajaxSend()
Parameters
Return value
Description
.ajaxStart()
Parameters
Return value
Description
.ajaxStop()
Parameters
Return value
Description
.ajaxSuccess()
Parameters
Return value
Description
Helper functions
.serialize()
Parameters
Return value
Description
.serializeArray()
Parameters
Return value
Description
8. Miscellaneous Methods
Setup methods
$.noConflict()
Parameters
Return value
Description
DOM element methods
.size()
Return value
Description
.get()
Parameters
Return value
Description
.index()
Parameters (first version)
Return value (first version)
Parameters (second version)
Return value (second version)
Parameters (third version)
Return value (third version)
Description
Collection manipulation
.each()
Parameters (first version)
Return value (first version)
Parameters (second version)
Return value (second version)
Description
$.grep()
Parameters
Return value
Description
$.makeArray()
Parameters
Return value
Description
$.inArray()
Parameters
Return value
Description
$.map()
Parameters
Return value
Description
$.merge()
Parameters
Return value
Description
$.unique()
Parameters
Return value
Description
$.extend()
Parameters
Return value
Description
$.trim()
Parameters
Return value
Description
$.param()
Parameters
Return value
Description
Introspection
$.isArray()
Parameters
Return value
$.isFunction()
Parameters
Return value
$.isPlainObject()
Parameters
Return value
$.isEmptyObject()
Parameters
Return value
$.isXMLDoc()
Parameters
Return value
Data storage
.data()
Parameters (first version)
Return value (first version)
Parameters (second version)
Return value (second version)
Parameters (third version)
Return value (third version)
Description
.removeData()
Parameters
Return value
Description
9. jQuery Properties
Global properties
$.browser
$.support
$.support.boxModel
$.support.cssFloat
$.support.hrefNormalized
$.support.htmlSerialize
$.support.leadingWhitespace
$.support.noCloneEvent
$.support.objectAll
$.support.opacity
$.support.scriptEval
$.support.style
$.support.tbody
jQuery object properties
.length
.selector
.context
10. The Plug-in API
Using a plug-in
Developing a plug-in
Object method
Components
Description
Global function
Components (first and second versions)
Components (third version)
Description
Plug-ins with a single function
Plug-ins with multiple functions
Example: A simple print function
Selector expression
Components
Description
Plug-in conventions
Use of the $ alias
Naming conventions
API standardization
11. Alphabetical Quick Reference
Selector expressions
Methods
Properties
A. Online Resources
jQuery documentation
Official jQuery documentation
jQuery API browser
Adobe AIR jQuery API Viewer
JavaScript reference
Mozilla Developer Center
Client-Side JavaScript Reference
MSDN Reference
Dev.Opera
Quirksmode
JavaScript Toolbox
comp.lang.javascript FAQ
JavaScript code compressors
JSMin
YUI Compressor
Google Closure Compiler
Packer
JavaScript code decompressors
Pretty Printer
JavaScript beautifier
(X)HTML reference
W3C Hypertext Markup Language Home Page
CSS reference
W3C Cascading Style Sheets Home Page
Mezzoblue CSS Crib Sheet
Position Is Everything
Useful blogs
The jQuery blog
Learning jQuery
jQuery for Designers
Ajaxian
John Resig
JavaScript Ant
Robert's talk
Snook
Paul Irish
NCZOnline
I Can't
DOM scripting
Steve Souders
As days pass by
A List Apart
Web development frameworks using jQuery
B. Development Tools
Tools for Firefox
Firebug
Web Developer toolbar
Venkman
Regular Expressions Tester
Tools for Internet Explorer
Microsoft Internet Explorer Developer Toolbar
Microsoft Internet Explorer 8 Developer Tools
Microsoft Visual Web Developer Express
dynaTrace AJAX Edition
DebugBar
Drip
Tools for Safari
Develop menu
Tools for Opera
Dragonfly
Other tools
Firebug Lite
NitobiBug
TextMate jQuery Bundle
jQuerify Bookmarklet
Charles
Fiddler
Sloppy
JS Bin
Bespin
Aptana
Index

jQuery 1.4 Reference Guide

Karl Swedberg

Jonathan Chaffer

jQuery 1.4 Reference Guide

Copyright © 2010 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented. However, the information contained in this book is sold without warranty, either express or implied. Neither the authors, nor Packt Publishing, and its dealers and distributors will be held liable for any damages caused or alleged to be caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy of this information.

First published: January 2010

Production Reference: 1190110

Published by Packt Publishing Ltd.

32 Lincoln Road

Olton

Birmingham, B27 6PA, UK.

ISBN 978-1-84951-004-2

www.packtpub.com

Cover Image by Karl Swedberg (<[email protected]>)

Credits

Authors

Karl Swedberg

Jonathan Chaffer

Reviewers

Joydip Kanjilal

Dave Methvin

Acquisition Editor

Swapna V. Verlekar

Development Editor

Swapna V. Verlekar

Technical Editor

Tariq Rakhange

Copy Editor

Sneha Kulkarni

Indexer

Hemangini Bari

Production Editorial Manager

Abhijeet Deobhakta

Editorial Team Leader

Mithun Sehgal

Project Team Leader

Lata Basantani

Project Coordinator

Joel Goveya

Proofreader

Chris Smith

Graphics

Nilesh R. Mohite

Production Coordinator

Dolly Dasilva

Cover Work

Dolly Dasilva

About the Authors

Karl Swedberg is a web developer at Fusionary Media in Grand Rapids, Michigan, where he spends much of his time solving problems with JavaScript and implementing design. A member of the jQuery Project Team and an active contributor to the jQuery discussion list, Karl has presented at workshops and conferences, and provided corporate training in Europe and North America.

Before he got hooked on to web development, Karl worked as a copy editor, a high-school English teacher, and a coffee house owner. He gave up his dream of becoming a professional musician in the early 1990s about the same time that he stumbled into a job at Microsoft in Redmond, Washington. He sold his hollow-body Rickenbacker ages ago, but still keeps an acoustic guitar in the basement.

I wish to thank my wife, Sara, for keeping me sane. Thanks also to my two delightful children, Benjamin and Lucia. Jonathan Chaffer has my deepest respect for his programming expertise and my gratitude for his willingness to write this book with me.

Many thanks to John Resig for creating the world's greatest JavaScript library and for fostering an amazing community around it. Thanks also to the folks at Packt Publishing, the technical reviewers of this book, the jQuery Cabal, and the many others who have provided help and inspiration along the way.

Jonathan Chaffer is a member of Rapid Development Group, a web development firm located in Grand Rapids, Michigan. His work there includes overseeing and implementing projects in a wide variety of technologies, with an emphasis on PHP, MySQL, and JavaScript.

In the open source community, Jonathan has been very active in the Drupal CMS project, which has adopted jQuery as its JavaScript framework of choice. He is the creator of the Content Construction Kit, a popular module for managing structured content on Drupal sites. He is responsible for major overhauls of Drupal's menu system and developer API reference.

Jonathan lives in Grand Rapids with his wife, Jennifer.

I would like to thank Jenny for her tireless enthusiasm and support, Karl for the motivation to continue writing when the spirit was weak, and the Ars Technica community for constant inspiration toward technical excellence.

About the Reviewers

Joydip Kanjilal is a Microsoft MVP in ASP.NET, and the author of a number of books on .NET and its related technologies. He has over 12 years of industry experience in IT with more than 6 years in Microsoft .NET and its related technologies. He has authored a lot of articles for some of the most reputable sites such as www.asptoday.com, www.devx.com, www.aspalliance.com, www.aspnetpro.com, www.mcpressonline.com, www.sql-server-performance.com, www.sswug.com, and so on. A lot of these articles have been selected at www.asp.net—Microsoft's official site on ASP.NET. Joydip was also a community credit winner at www.community-credit.com a number of times. Joydip was also selected as MSDN Featured Developer of the Fortnight in November and December, 2008. Joydip has authored the following books:

ASP.NET 4.0 Programming (Mc-Graw Hill Publishing)Entity Framework Tutorial (Packt Publishing)Pro Sync Framework (APRESS)Sams Teach Yourself ASP.NET Ajax in 24 Hours (Sams Publishing)ASP.NET Data Presentation Controls Essentials (Packt Publishing)

He is currently working as an independent software consultant and author. He has years of experience in designing and architecting solutions for various domains. His technical strengths include C, C++, VC++, Java, C#, Microsoft .NET, AJAX, Design Patterns, SQL Server, Operating Systems, and Computer Architecture. Joydip blogs at http://aspadvice.com/blogs/joydip and spends his time reading books, blogs, and writing books and articles. His hobbies include watching cricket, soccer, and playing chess.

Dave Methvin is the Chief Technology Officer at PC Pitstop and one of the founding partners of the company. He provides technical direction for the PCPitstop.com (http://www.pcpitstop.com/) web site and oversees software development.

Before joining PC Pitstop, Dave had an extensive career in computer journalism. He served as an Executive Editor at both Windows Magazine and PC Tech Journal, co-authored a book on Windows NT networking, and wrote articles for more than two dozen publications. Dave blogs on Windows issues for the InformationWeek (http://www.informationweek.com) web site.

Dave holds both a bachelor's and a master's degree in Computer Science from the University of Virginia. He has been active in the jQuery community since 2006 and has written several popular plug-ins such as Splitter.

Preface

jQuery is a powerful, yet easy-to-use, JavaScript library that helps web developers and designers add dynamic, interactive elements to their sites, smoothing out browser inconsistencies and greatly reducing development time. In jQuery 1.4 Reference Guide, you can investigate this library's features in a thorough, accessible format.

This book offers an organized menu of every jQuery method, function, and selector. Entries are accompanied by detailed descriptions and helpful recipes that will assist you in getting the most out of jQuery, and avoiding the pitfalls commonly associated with JavaScript and other client-side languages. If you're still hungry for more, the book shows you how to cook up your own extensions with jQuery's elegant plug-in architecture.

You'll discover the untapped possibilities that jQuery makes available and hone your skills as you return to this guide time and again.

What this book covers

In Chapter 1, Anatomy of a jQuery Script, we'll begin by dissecting a working jQuery example. This script will serve as a roadmap for this book, directing you to the chapters containing more information on particular jQuery capabilities.

The heart of the book is a set of reference chapters, which allow you to quickly look up the details of any jQuery method. Chapter 2, Selector Expressions, lists every available selector for finding page elements.

Chapter 3, DOM Traversal Methods, builds on the previous chapter with a catalog of jQuery methods for finding page elements.

Chapter 4, DOM Manipulation Methods, describes every opportunity for inspecting and modifying the HTML structure of a page.

Chapter 5, Event Methods, details each event that can be triggered and reacted to by jQuery.

Chapter 6, Effect Methods, defines the range of animations built into jQuery, as well as the toolkit available for building your own.

Chapter 7, AJAX Methods, lists the ways in which jQuery can initiate and respond to server communication without refreshing the page.

Chapter 8, Miscellaneous Methods, covers the remaining capabilities of the jQuery library that don't neatly fit into the other categories.

Chapter 9, jQuery Properties, lists properties of the jQuery object that can be inspected for information about the browser environment.

With the catalog of built-in functionality concluded, we'll dive into the extension mechanisms jQuery makes available. Chapter 10, Plug-in API, reveals these powerful ways to enhance jQuery's already robust capabilities using a plug-in.

Chapter 11, Alphabetical Quick Reference, offers a handy list of all methods and their arguments.

Appendix A, Online Resources, provides a handful of informative web sites on a wide range of topics related to jQuery, JavaScript, and web development in general.

Appendix B, Development Tools, recommends a number of useful third-party programs and utilities for editing and debugging jQuery code within your personal development environment.

What you need for this book

This book is a reference guide, not a tutorial. As such, prior exposure to the jQuery library will be beneficial in navigating this reference. The book Learning jQuery 1.3 is well-suited for this purpose.

To understand jQuery concepts, some knowledge of JavaScript is required, and familiarity with HTML and CSS is helpful.

The jQuery library itself can be downloaded from http://jquery.com/. The majority of examples in this book require only this library, a text editor, and a web browser. Some AJAX examples require web server software as well, such as Apache, but this requirement is avoided wherever possible.

Who this book is for

This reference is designed for web developers who want a broad, organized view of all that the jQuery library has to offer, or want a quick reference on their desks to refer to for particular details. Basic knowledge of HTML and CSS is required. You should be comfortable with the syntax of JavaScript, and have basic knowledge of jQuery to make best use of this book.

Conventions

In this book, you will find a number of styles of text that distinguish between different kinds of information. Here are some examples of these styles, and an explanation of their meaning.

Code words in text are shown as follows: "The .removeAttr() method uses the JavaScript removeAttribute() function."

A block of code is set as follows:

<ul> <li>list item 1</li> <li>list item 2</li> <li>list item 3</li> <li>list item 4</li> <li>list item 5</li> <li>list item 6</li> </ul>

When we wish to draw your attention to a particular part of a code block, the relevant lines or items are set in bold:

<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <script src="jquery.js" type="text/javascript"></script> <script src="jquery.plug-in.js" type="text/javascript"></script> <script src="custom.js" type="text/javascript"></script> <title>Example</title> </head>

New terms and important words are shown in bold. Words that you see on the screen, in menus or dialog boxes for example, appear in the text like this: "After this code executes, clicks on Trigger the handler will also display the same message."

Note

Warnings or important notes appear in a box like this.

Tip

Tips and tricks appear like this.

Reader feedback

Feedback from our readers is always welcome. Let us know what you think about this book—what you liked or may have disliked. Reader feedback is important for us to develop titles that you really get the most out of.

To send us general feedback, simply send an email to <[email protected]>, and mention the book title via the subject of your message.

If there is a book that you need and would like to see us publish, please send us a note in the SUGGEST A TITLE form on www.packtpub.com or email to <[email protected]>.

If there is a topic that you have expertise in and you are interested in either writing or contributing to a book, see our author guide on www.packtpub.com/authors.

Customer support

Now that you are the proud owner of a Packt book, we have a number of things to help you to get the most from your purchase.

Tip

Downloading the example code for the book

Visit http://www.packtpub.com/files/code/0042_Code.zip to directly download the example code.

The downloadable files contain instructions on how to use them.

Errata

Although we have taken every care to ensure the accuracy of our content, mistakes do happen. If you find a mistake in one of our books—maybe a mistake in the text or the code—we would be grateful if you would report this to us. By doing so, you can save other readers from frustration and help us to improve subsequent versions of this book. If you find any errata, please report them by visiting http://www.packtpub.com/support, selecting your book, clicking on the let us know link, and entering the details of your errata. Once your errata are verified, your submission will be accepted and the errata will be uploaded on our web site, or added to any list of existing errata, under the Erarata section of that title. Any existing errata can be viewed by selecting your title from http://www.packtpub.com/support.

Piracy

Piracy of copyright material on the Internet is an ongoing problem across all media. At Packt, we take the protection of our copyright and licenses very seriously. If you come across any illegal copies of our works, in any form, on the Internet, please provide us with the location address or web site name immediately so that we can pursue a remedy.

Please contact us at <[email protected]> with a link to the suspected pirated material.

We appreciate your help in protecting our authors, and our ability to bring you valuable content.

Questions

You can contact us at <[email protected]> if you are having a problem with any aspect of the book, and we will do our best to address it.

Summary

We've now seen a complete, functional jQuery-powered script. This example, though small, brings a significant amount of interactivity and usability to the page. The script has illustrated the major types of tools offered by jQuery, as well. We've observed how the script finds items in the DOM and changes them as necessary. We've witnessed response to user action, and animation to give feedback to the user after the action. We've even seen how to pull information from the server without a page refresh, and how to teach jQuery brand new tricks in the form of plug-ins.

In the following chapters, we'll be stepping through each function, method, and selector expression in the jQuery library. Each method will be introduced with a summary of its syntax and a list of its parameters and return value. Then we will offer a description, which will provide examples where applicable. For further reading about any method, consult the online resources listed in Appendix A, Online Resources. We'll also examine jQuery's plug-in architecture and discuss both how to use plug-ins and how to write our own.

Chapter 2. Selector Expressions

Each action we perform with jQuery requires a target. For example, in order to hide or show an element on the page, first we must find that element. To do so, we rely on jQuery's selector expressions.

Borrowing from CSS 1–3 and then adding its own, jQuery offers a powerful set of tools for matching a set of elements in a document. In this chapter, we'll examine every selector expression that jQuery makes available in turn.

CSS selectors

The following selectors are based on the Cascading Style Sheet specifications (1–3), as outlined by the W3C. For more information about the specifications, visit http://www.w3.org/Style/CSS/#specs.

Element (T)

Select all elements that have a tag name of T.

Examples

$('div') selects all elements with a tag name of div in the document$('em') selects all elements with a tag name of em in the document

Description

JavaScript's getElementsByTagName() function is called to return the appropriate elements when this expression is used.

ID (#myid)

Select the unique element with an ID equal to myid.

Examples

$('#myid') selects the unique element with id="myid"$('p#myid') selects a single paragraph with an ID of myid; in other words, the unique element <p id="myid">

Description

Each ID value must be used only once within a document. If more than one element has been assigned the same ID, queries that use that ID will only select the first matched element in the DOM. However, this behavior should not be relied on. A document with more than one element using the same ID is invalid.

In our second example, it might not be immediately clear why someone might want to specify a tag name associated with a particular ID, as that id value needs to be unique anyway. However, some situations in which parts of the DOM are user-generated may require a more specific expression to avoid false positives. Furthermore, when the same script is run on more than one page, it might be necessary to identify the element ID as the pages could be associating the same ID with different elements. For example, page A might have <h1 id="title"> while page B has <h2 id="title">.

For ID selectors such as the preceding examples, jQuery uses the JavaScript function getElementById(), which is extremely efficient. When another selector is attached to the ID selector, like in the second example, jQuery performs an additional check before identifying the element as a match.

Note

As always, remember that as a developer, your time is typically the most valuable resource. Do not focus on optimization of selector speed unless it is clear that performance needs to be improved.

Class (.myclass)

Select all elements that have a class of myclass.

Examples

$('.myclass') selects all elements that have a class of myclass$('p.myclass') selects all paragraphs that have a class of myclass$('.myclass.otherclass') selects all elements that have a class of both myclass and otherclass

Description

For class selectors, jQuery uses JavaScript's native getElementsByClassName() function if the browser supports it. Otherwise, it checks the .className attribute of each element.

As a CSS selector (for example, in a stylesheet), the multiple-class syntax used in the third example is supported by all modern web browsers, but not by Internet Explorer versions 6 and below. This makes the syntax especially handy for applying styles cross-browser through jQuery.

Descendant (E F)

Select all elements matched by F that are descendants of an element matched by E.

Examples

$('#container p') selects all paragraph elements that are descendants of an element that has an ID of container$('a img') selects all <img> elements that are descendants of an <a> element

Description

Descendants of an element are that element's children, grandchildren, great-grandchildren, and so on. For example, in the following HTML code, the <img> element is a descendant of the <span>, <p>, <div id="inner">, and <div id="container"> elements:

<div id="container"> <div id="inner"> <p> <span><img src="example.jpg" alt="" /></span> </p> </div> </div>

Child (E > F)

Select all elements matched by F that are children of an element matched by E.

Examples

$('li > ul') selects all <ul> elements that are children of an <li> element$('.myclass > code') selects all <code> elements that are children of an element with the class myclass

Description

As a CSS selector, the child combinator is supported by all modern web browsers including Safari, Mozilla/Firefox, Opera, Chrome, and Internet Explorer 7 and above; but notably not by Internet Explorer versions 6 and below. The first example is a handy way of selecting all nested unordered lists (that is, except the top level), and jQuery makes it possible to do this in a cross-browser fashion.

The child combinator (E > F) can be thought of as a more specific form of the descendant combinator (E F) in that it selects only first-level descendants. Therefore, in the following HTML code, the <img> element is a child only of the <span> element:

<div id="container"> <div id="inner"> <p> <span><img src="example.jpg" alt="" /></span> </p> </div> </div>