Jquery Tutorial
Jquery Tutorial
i
jQuery
Audience
This tutorial is designed for software programmers who wants to learn the basics of jQuery
and its programming concepts in simple and easy ways. This tutorial will give you enough
understanding on components of jQuery with suitable examples.
Prerequisites
Before proceeding with this tutorial, you should have a basic understanding of HTML, CSS,
JavaScript, Document Object Model (DOM) and any text editor. As we are going to develop
web based application using jQuery, it will be good if you have understanding on how
internet and web based applications work
All the content and graphics published in this e-book are the property of Tutorials Point (I)
Pvt. Ltd. The user of this e-book is prohibited to reuse, retain, copy, distribute or republish
any contents or a part of contents of this e-book in any manner without written consent
of the publisher.
We strive to update the contents of our website and tutorials as timely and as precisely as
possible, however, the contents may contain inaccuracies or errors. Tutorials Point (I) Pvt.
Ltd. provides no guarantee regarding the accuracy, timeliness or completeness of our
website or its contents including this tutorial. If you discover any errors on our website or
in this tutorial, please notify us at [email protected]
i
jQuery
Table of Contents
About the Tutorial .................................................................................................................................... i
Audience .................................................................................................................................................. i
Prerequisites ............................................................................................................................................ i
1. OVERVIEW........................................................................................................................... 1
2. BASICS ................................................................................................................................. 7
String ...................................................................................................................................................... 7
Numbers ................................................................................................................................................. 7
Boolean ................................................................................................................................................... 7
Objects .................................................................................................................................................... 8
Arrays...................................................................................................................................................... 8
Functions ................................................................................................................................................ 8
Arguments .............................................................................................................................................. 9
Context ................................................................................................................................................... 9
Scope .................................................................................................................................................... 10
Callback ................................................................................................................................................. 10
ii
jQuery
Closures ................................................................................................................................................ 11
3. SELECTORS ........................................................................................................................ 15
4. JQUERY ATTRIBUTES.......................................................................................................... 31
iv
jQuery
v
jQuery
vi
jQuery
vii
jQuery
viii
1. OVERVIEW jQuery
What is jQuery?
jQuery is a fast and concise JavaScript Library created by John Resig in 2006 with a nice
motto: Write less, do more. jQuery simplifies HTML document traversing, event handling,
animating, and Ajax interactions for rapid web development. jQuery is a JavaScript toolkit
designed to simplify various tasks by writing less code. Here is the list of important core
features supported by jQuery:
DOM manipulation: The jQuery made it easy to select DOM elements, negotiate them
and modifying their content by using cross-browser open source selector engine called
Sizzle.
Event handling: The jQuery offers an elegant way to capture a wide variety of events,
such as a user clicking on a link, without the need to clutter the HTML code itself with
event handlers.
AJAX Support: The jQuery helps you a lot to develop a responsive and feature-rich
site using AJAX technology.
Animations: The jQuery comes with plenty of built-in animation effects which you can
use in your websites.
Lightweight: The jQuery is very lightweight library - about 19KB in size (Minified and
gzipped).
Cross Browser Support: The jQuery has cross-browser support, and works well in
IE 6.0+, FF 2.0+, Safari 3.0+, Chrome and Opera 9.0+
Latest Technology: The jQuery supports CSS3 selectors and basic XPath syntax.
Local Installation − You can download jQuery library on your local machine and
include it in your HTML code.
CDN Based Version − You can include jQuery library into your HTML code directly
from Content Delivery Network (CDN).
9
jQuery
Local Installation
Go to the https://jquery.com/download/ to download the latest version available.
Example
Now, you can include jquery library in your HTML file as follows:
<html>
<head>
<title>The jQuery Example</title>
<script type="text/javascript" src="/jquery/jquery-2.1.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
document.write("Hello, World!");
});
</script>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
Hello, World!
10
jQuery
We are using Google CDN version of the library throughout this tutorial.
Example
Now let us rewrite above example using jQuery library from Google CDN.
<html>
<head>
<title>The jQuery Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<script type="text/javascript">
$(document).ready(function(){
document.write("Hello, World!");
});
</script>
</head>
<body>
<h1>Hello</h1>
</body>
</html>
Hello, World!
11
jQuery
If you want an event to work on your page, you should call it inside the $(document).ready()
function. Everything inside it will load as soon as the DOM is loaded and before the page
contents are loaded.
$(document).ready(function() {
// do stuff when DOM is ready
});
To call upon any jQuery library function, use HTML script tags as shown below:
<html>
<head>
<title>The jQuery Example</title>
<script type="text/javascript"
src="/jquery/jquery-1.3.2.min.js"></script>
</head>
<body>
<div id="newdiv">
Click on this to see a dialogue box.
12
jQuery
</div>
</body>
</html>
/* Filename: custom.js */
$(document).ready(function() {
$("div").click(function() {
alert("Hello world!");
});
});
<html>
<head>
<title>The jQuery Example</title>
<script type="text/javascript"
src="/jquery/jquery-1.3.2.min.js"></script>
<script type="text/javascript"
src="/jquery/custom.js"></script>
</head>
<body>
<div id="newdiv">
Click on this to see a dialogue box.
</div>
</body>
</html>
13
jQuery
Run $.noConflict() method to give control of the $ variable back to whichever library first
implemented it. This helps us to make sure that jQuery doesn't conflict with the $ object of
other libraries.
This technique is especially effective in conjunction with the .ready() method's ability to alias
the jQuery object, as within the .ready() we can use $ if we wish without fear of conflicts
later:
14
jQuery
What is Next ?
Do not worry too much if you did not understand the above examples. You are going to grasp
them very soon in subsequent chapters. In the next chapter, we would try to cover few basic
concepts which are coming from conventional JavaScript.
15
2. BASICS jQuery
jQuery is a framework built using JavaScript capabilities. So, you can use all the functions
and other capabilities available in JavaScript. This chapter would explain most basic concepts
but frequently used in jQuery.
String
A string in JavaScript is an immutable object that contains none, one or many characters.
Following are the valid examples of a JavaScript String:
Numbers
Numbers in JavaScript are double-precision 64-bit format IEEE 754 values. They are
immutable, just as strings. Following are the valid examples of a JavaScript Numbers:
5350
120.27
0.26
Boolean
A boolean in JavaScript can be either true or false. If a number is zero, it defaults to false.
If there is an empty string, it defaults to false.
true // true
false // false
0 // false
1 // true
"" // false
16
jQuery
"hello" // true
Objects
JavaScript supports Object concept very well. You can create an object using the object literal
as follows:
var emp = {
name: "Zara",
age: 10
};
You can write and read properties of an object using the dot notation as follows:
Arrays
You can define arrays using the array literal as follows:
var x = [];
var y = [1, 2, 3, 4, 5];
17
jQuery
Functions
A function in JavaScript can be either named or anonymous. A named function can be defined
using function keyword as follows:
function named(){
// do some stuff here
}
An anonymous function can be defined in similar way as a normal function but it would not
have any name. An anonymous function can be assigned to a variable or passed to a method
as shown below.
$(document).ready(function(){
// do some stuff here
});
Arguments
JavaScript variable arguments is a kind of array which has length property. Following example
shows it very well:
function func(x){
console.log(typeof x, arguments.length);
}
func(); //==> "undefined", 0
func(1); //==> "number", 1
func("1", "2", "3"); //==> "string", 3
The arguments object also has a callee property, which refers to the function you're inside.
For example:
function func() {
18
jQuery
return arguments.callee;
}
func(); // ==> func
Context
JavaScript famous keyword this always refers to the current context. Within a function
thiscontext can change, depending on how the function is called:
$(document).ready(function() {
// this refers to window.document
});
$("div").click(function() {
// this refers to a div DOM element
});
You can specify the context for a function call using the function-built-in methods call() and
apply() methods. The difference between them is how they pass arguments. Call passes all
arguments through as arguments to the function, while apply accepts an array as the
arguments.
function scope() {
console.log(this, arguments.length);
}
scope() // window, 0
scope.call("foobar", [1,2]); //==> "foobar", 1
scope.apply("foobar", [1,2]); //==> "foobar", 2
Scope
The scope of a variable is the region of your program in which it is defined. JavaScript variable
will have only two scopes.
Global Variables: A global variable has global scope which means it is defined
everywhere in your JavaScript code.
19
jQuery
Local Variables: A local variable will be visible only within a function where it is
defined. Function parameters are always local to that function.
Within the body of a function, a local variable takes precedence over a global variable with
the same name:
function ( ) {
var myVar = "local"; // ==> Declare a local variable
document.write(myVar); // ==> local
}
Callback
A callback is a plain JavaScript function passed to some method as an argument or option.
Some callbacks are just events, called to give the user a chance to react when a certain state
is triggered. jQuery's event system uses such callbacks everywhere for example:
$("body").click(function(event) {
console.log("clicked: " + event.target);
});
Most callbacks provide arguments and a context. In the event-handler example, the callback
is called with one argument, an Event. Some callbacks are required to return something,
others make that return value optional. To prevent a form submission, a submit event handler
can return false as follows:
$("#myform").submit(function() {
return false;
});
Closures
Closures are created whenever a variable that is defined outside the current scope is accessed
from within some inner scope. Following example shows how the variable counter is visible
within the create, increment, and print functions, but not outside of them:
function create() {
20
jQuery
var counter = 0;
return {
increment: function() {
counter++;
},
print: function() {
console.log(counter); }
}
}
var c = create();
c.increment();
c.print(); // ==> 1
This pattern allows you to create objects with methods that operate on data that isn't visible
to the outside world. It should be noted that data hiding is the very basis of object-oriented
programming.
Proxy Pattern
A proxy is an object that can be used to control access to another object. It implements the
same interface as this other object and passes on any method invocations to it. This other
object is often called the real subject. A proxy can be instantiated in place of this real subject
and allow it to be accessed remotely. We can saves jQuery's setArray method in a closure
and overwrites it as follows:
(function() {
// log all calls to setArray
var proxied = jQuery.fn.setArray;
jQuery.fn.setArray = function() {
console.log(this, arguments);
return proxied.apply(this, arguments);
};
})();
The above wraps its code in a function to hide the proxied variable. The proxy then logs all
calls to the method and delegates the call to the original method. Using apply(this,
21
jQuery
arguments) guarantees that the caller won't be able to notice the difference between the
original and the proxied method.
Built-in Functions
JavaScript comes along with a useful set of built-in functions. These methods can be used to
manipulate Strings, Numbers and Dates.
Method Description
concat() Combines the text of two strings and returns a new string.
indexOf() Returns the index within the calling String object of the first
occurrence of the specified value, or -1 if not found.
pop() Removes the last element from an array and returns that
element.
push() Adds one or more elements to the end of an array and returns
the new length of the array.
22
jQuery
<html>
<head>
<title>the title</title>
</head>
<body>
<div>
<p>This is a paragraph.</p>
<p>This is second paragraph.</p>
<p>This is third paragraph.</p>
</div>
</body>
</html>
This is a paragraph.
Following are the important points about the above tree structure:
The <html> is the ancestor of all the other elements; in other words, all the other
elements are descendants of <html>.
23
jQuery
The <head> and <body> elements are not only descendants, but children of <html>,
as well.
Likewise, in addition to being the ancestor of <head> and <body>, <html> is also
their parent.
The <p> elements are children (and descendants) of <div>, descendants of <body>
and <html>, and siblings of each other <p> elements.
While learning jQuery concepts, it will be helpful to have understanding on DOM, if you are
not aware of DOM, then I would suggest you to go through our simple tutorial on DOM Tutorial.
24
3. SELECTORS jQuery
The jQuery library harnesses the power of Cascading Style Sheets (CSS) selectors to let us
quickly and easily access elements or groups of elements in the Document Object Model
(DOM).
A jQuery Selector is a function which makes use of expressions to find out matching elements
from a DOM based on the given criteria.
1 Tag Name
Represents a tag name available in the DOM. For example $('p') selects all
paragraphs <p> in the document.
2 Tag ID
Represents a tag available with the given ID in the DOM. For example $('#some-
id') selects the single element in the document that has an ID of some-id.
3 Tag Class
Represents a tag available with the given class in the DOM. For example
$('.some-class') selects all elements in the document that have a class of some-
class.
All the above items can be used either on their own or in combination with other selectors.
All the jQuery selectors are based on the same principle except some tweaking.
NOTE: The factory function $() is a synonym of jQuery() function. So in case you are using
any other JavaScript library where $ sign is conflicting with some thing else then you can
replace $ sign by jQuery name and you can use function jQuery() instead of $().
25
jQuery
Example
Following is a simple example which makes use of Tag Selector. This would select all the
elements with a tag name p.
<html>
<head>
<title>the title</title>
<script type="text/javascript"
src="/jquery/jquery-1.3.2.min.js"></script>
26
jQuery
Following table lists down few basic selectors and explains them with examples.
1 Name
Selects all elements which match with the given element Name.
2 #ID
3 .Class
4 Universal (*)
5 Multiple Elements E, F, G
Description
The element selector selects all the elements that have a tag name of T.
27
jQuery
Syntax
Here is the simple syntax to use this selector −
$('tagname')
Parameters
Here is the description of all the parameters used by this selector −
tagname − Any standard HTML tag name like div, p, em, img, li etc.
Returns
Like any other jQuery selector, this selector also returns an array filled with the found
elements.
Example
$('p') − Selects all elements with a tag name of p in the document.
$('div') − Selects all elements with a tag name of div in the document.
Following example would select all the divisions and will apply yellow color to their background
−
<html>
<head>
<title>The Selecter Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
28
jQuery
<body>
</body>
</html>
Description
The element ID selector selects a single element with the given id attribute.
Syntax
Here is the simple syntax to use this selector −
$('#elementid')
29
jQuery
Parameters
Here is the description of all the parameters used by this selector −
Elementid: This would be an element ID. If the id contains any special characters like
periods or colons you have to escape those characters with backslashes.
Returns
Like any other jQuery selector, this selector also returns an array filled with the found
element.
Example
$('#myid') − Selects a single element with the given id myid.
$('div#yourid') − Selects a single division with the given id yourid.
Following example would select second division and will apply yellow color to its background
as below:
<html>
<head>
<title>The Selecter Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
</head>
<body>
</div>
</body>
</html>
Description
The element class selector selects all the elements which match with the given class of the
elements.
Syntax
Here is the simple syntax to use this selector:
$('.classid')
Parameters
Here is the description of all the parameters used by this selector −
31
jQuery
Returns
Like any other jQuery selector, this selector also returns an array filled with the found
elements.
Example
$('.big') − Selects all the elements with the given class ID big.
$('p.small') − Selects all the paragraphs with the given class ID small.
$('.big.small') − Selects all the elements with a class of big and small.
Following example would select all divisions with class .big and will apply yellow color
to its background
<html>
<head>
<title>The Selecter Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
</head>
<body>
32
jQuery
</body>
</html>
Description
The universal selector selects all the elements available in the document.
Syntax
Here is the simple syntax to use this selector −
$('*')
Parameters
Here is the description of all the parameters used by this selector −
* − A symbolic star.
33
jQuery
Returns
Like any other jQuery selector, this selector also returns an array filled with the found
elements.
Example
$('*') selects all the elements available in the document.
Following example would select all the elements and will apply yellow color to their
background. Try to understand that this selector will select every element including head,
body etc.
<html>
<head>
<title>The Selecter Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
</head>
<body>
34
jQuery
</div>
</body>
</html>
Description
This Multiple Elements selector selects the combined results of all the specified selectors E, F
or G.
You can specify any number of selectors to combine into a single result. Here order of the
DOM elements in the jQuery object aren't necessarily identical.
Syntax
Here is the simple syntax to use this selector −
$('E, F, G,....')
Parameters
Here is the description of all the parameters used by this selector −
Returns
35
jQuery
Like any other jQuery selector, this selector also returns an array filled with the found
elements.
Example
$('div, p') − selects all the elements matched by div or p.
$('p strong, .myclass') − selects all elements matched by strong that are
descendants of an element matched by p as well as all elements that have a class
of myclass.
$('p strong, #myid') − selects a single elements matched by strong that is
descendant of an element matched by p as well as element whose id is myid.
Following example would select elements with class ID big and element with ID div3 and will
apply yellow color to its background −
<html>
<head>
<title>The Selecter Example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
</script>
<body>
36
jQuery
</body>
</html>
Selectors Examples
Similar to above syntax and examples, the following examples would give you understanding
on using different type of other useful selectors:
1 $('*')
This selector selects all elements that are children of a paragraph element.
3 $("#specialID")
4 $(".specialClass")
37
jQuery
This selector gets all the elements that have the class of specialClass.
5 $("li:not(.myclass)")
6 $("a#specialID.specialClass")
7 $("p a.specialClass")
This selector matches links with a class of specialClass declared within <p>
elements.
8 $("ul li:first")
This selector gets only the first <li> element of the <ul>.
9 $("#container p")
Selects all elements matched by <p> that are descendants of an element that
has an id of container.
Selects all elements matched by <ul> that are children of an element matched
by <li>
11 $("strong + em")
Selects all elements matched by <em> that immediately follow a sibling element
matched by <strong>.
12 $("p ~ ul")
Selects all elements matched by <ul> that follow a sibling element matched by
<p>.
38
jQuery
15 $(":empty")
16 $("p:empty")
17 $("div[p]")
Selects all elements matched by <div> that contain an element matched by <p>.
18 $("p[.myclass]")
Selects all elements matched by <p> that contain an element with a class
ofmyclass.
19 $("a[@rel]")
20 $("input[@name=myname]")
Selects all elements matched by <input> that have a name value exactly equal
tomyname.
21 $("input[@name^=myname]")
Selects all elements matched by <input> that have a name value beginning
withmyname.
22 $("a[@rel$=self]")
Selects all elements matched by <a> that have rel attribute value ending with
self.
23 $("a[@href*=domain.com]")
39
jQuery
Selects all elements matched by <a> that have a href value containing
domain.com.
24 $("li:even")
Selects all elements matched by <li> that have an even index value.
25 $("tr:odd")
Selects all elements matched by <tr> that have an odd index value.
26 $("li:first")
27 $("li:last")
28 $("li:visible")
29 $("li:hidden")
30 $(":radio")
31 $(":checked")
32 $(":input")
33 $(":text")
40
jQuery
34 $("li:eq(2)")
35 $("li:eq(4)")
36 $("li:lt(2)")
Selects all elements matched by <li> element before the third one; in other
words, the first two <li> elements.
37 $("p:lt(3)")
Selects all elements matched by <p> elements before the fourth one; in other
words the first three <p> elements.
38 $("li:gt(1)")
39 $("p:gt(2)")
40 $("div/p")
Selects all elements matched by <p> that are children of an element matched by
<div>.
41 $("div//code")
42 $("//p//a")
43 $("li:first-child")
41
jQuery
Selects all elements matched by <li> that are the first child of their parent.
44 $("li:last-child")
Selects all elements matched by <li> that are the last child of their parent.
45 $(":parent")
Selects all elements that are the parent of another element, including text.
46 $("li:contains(second)")
Selects all elements matched by <li> that contain the text second.
You can use all the above selectors with any HTML/XML element in generic way. For example
if selector $("li:first") works for <li> element then $("p:first") would also work for <p>
element.
42
jQuery
43