Jquery Notes Course Tutorial
Jquery Notes Course Tutorial
Jquery Notes Course Tutorial
com)
The purpose of jQuery is to make it much easier to use JavaScript on your website.
What is jQuery?
jQuery is a lightweight, "write less, do more", JavaScript library.
The purpose of jQuery is to make it much easier to use JavaScript on your website.
jQuery takes a lot of common tasks that requires many lines of JavaScript code to
accomplish, and wraps it into methods that you can call with a single line of code.
jQuery also simplifies a lot of the complicated things from JavaScript, like AJAX calls and
DOM manipulation.
HTML/DOM manipulation
CSS manipulation
HTML event methods
Effects and animations
AJAX
Utilities
Tip: In addition, jQuery has plugins for almost any task out there.
Why jQuery?
There are a lots of other JavaScript frameworks out there, but jQuery seems to be the
most popular, and also the most extendable.
Google
Microsoft
IBM
Netflix
The jQuery team knows all about cross-browser issues, and they have written this
knowledge into the jQuery library. jQuery will run exactly the same in all major
browsers, including Internet Explorer 6!
jQuer I stall
The jQuery library is a single JavaScript file, and you reference to it using the HTML
<script> tag:
<head>
<script src="jquery.js"></script>
</head>
Notice that the <script> tag should be inside the page's <head> section.
This is not required in HTML5. JavaScript is the default scripting language in HTML5
and in all modern browsers!
Downloading jQuery
There are two versions of jQuery available for downloading:
Production version - this is for your live website because it has been minified and
compressed
Development version - this is for testing and development (uncompressed and
readable code)
Alternatives to Downloading
If you don't want to download and host jQuery yourself, you can include it from a CDN
(Content Delivery Network).
Google CDN:
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script>
</head>
Try it yourself »
If you look at the Google URL above - the version of jQuery is specified in the URL
(1.8.0). If you would like to use the latest version of jQuery, you can either remove
a number from the end of the version string (for example 1.8), then Google will
return the latest version available in the 1.8 series (1.8.0, 1.8.1, etc.), or you can
take it up to the whole number (1), and Google will return the latest version
available in the 1 series (from 1.1.0 to 1.9.9).
One big advantage of using the hosted jQuery from Google or Microsoft:
Many users already have downloaded jQuery from Google or Microsoft when
visiting another site. As a result, it will be loaded from cache when they visit your
site, which leads to faster loading time. Also, most CDN's will make sure that once
a user requests a file from it, it will be served from the server closest to them,
which also leads to faster loading time.
With jQuery you select (query) HTML elements and perform "actions" on them.
jQuery Syntax
The jQuery syntax is tailor made for selecting HTML elements and perform some action
on the element(s).
Examples:
jQuery uses CSS syntax to select elements. You will learn more about the selector
syntax in the next chapter of this tutorial.
$(document).ready(function(){
});
It is good practice to wait for the document to be fully loaded and ready, before working
with it. This also allows you to have your JavaScript code before the body of your
document, in the head section.
Here are some examples of actions that can fail if methods are run before the document
is fully loaded:
Tip: The jQuery team has also created an even shorter method for the document ready
event:
$(function(){
});
Use the syntax you prefer. We think that the document ready event is easier to
understand when reading the code.
jQuery selectors are one of the most important parts of the jQuery library.
jQuery Selectors
jQuery selectors allow you to select and manipulate HTML element(s).
With jQuery selectors you can find elements based on their id, classes, types, attributes,
values of attributes and much more. It's based on the existing CSS Selectors, and in
addition, it has some own custom selectors.
All type of selectors in jQuery, start with the dollar sign and parentheses: $().
$("p")
Example
Example
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
An id should be unique within a page, so you should use the #id selector when you want
to find a single, unique element.
To find an element with a specific id, write a hash character, followed by the id of the
element:
$("#test")
Example
When a user clicks on a button, the element with id="test" will be hidden:
Example
$(document).ready(function(){
$("button").click(function(){
$("#test").hide();
});
});
To find elements with a specific class, write a period character, followed by the name of
the class:
$(".test")
Example
When a user clicks on a button, the elements with class="test" will be hidden:
Example
$(document).ready(function(){
$("button").click(function(){
$(".test").hide();
});
});
It is common to put jQuery code into event handler methods in the <head> section.
In the example below, a function is called when the click event for the button is
triggered:
Example
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>
When we demonstrate jQuery in this tutorial, the functions are added directly into the
<head> section. However, sometimes it is preferable to place them in a separate file,
like this (use the src attribute to refer to the .js file):
Example
<head>
<script src="jquery.js"></script>
<script src="my_jquery_functions.js"></script>
</head>
Example
$("#hide").click(function(){
$("p").hide();
});
$("#show").click(function(){
$("p").show();
});
Syntax:
$(selector).hide(speed,callback);
$(selector).show(speed,callback);
The optional speed parameter specifies the speed of the hiding/showing, and can take
the following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after hide (or
show) completes.
Example
$("button").click(function(){
$("p").hide(1000);
});
jQuery toggle()
With jQuery, you can toggle between the hide() and show() methods with the toggle()
method.
Example
$("button").click(function(){
$("p").toggle();
});
Syntax:
$(selector).toggle(speed,callback);
The optional speed parameter can take the following values: "slow", "fast", or
milliseconds.
The optional callback parameter is the name of a function to be executed after the
toggle() method completes.
fadeIn()
fadeOut()
fadeToggle()
fadeTo()
Syntax:
$(selector).fadeIn(speed,callback);
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
fading completes.
The following example demonstrates the fadeIn() method with different parameters:
Example
$("button").click(function(){
$("#div1").fadeIn();
$("#div2").fadeIn("slow");
$("#div3").fadeIn(3000);
});
Syntax:
$(selector).fadeOut(speed,callback);
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
fading completes.
The following example demonstrates the fadeOut() method with different parameters:
Example
$("button").click(function(){
$("#div1").fadeOut();
If the elements are faded out, fadeToggle() will fade them in.
If the elements are faded in, fadeToggle() will fade them out.
Syntax:
$(selector).fadeToggle(speed,callback);
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
fading completes.
Example
$("button").click(function(){
$("#div1").fadeToggle();
$("#div2").fadeToggle("slow");
$("#div3").fadeToggle(3000);
});
Syntax:
$(selector).fadeTo(speed,opacity,callback);
The required opacity parameter in the fadeTo() method specifies fading to a given
opacity (value between 0 and 1).
The optional callback parameter is the name of a function to be executed after the
function completes.
The following example demonstrates the fadeTo() method with different parameters:
Example
$("button").click(function(){
$("#div1").fadeTo("slow",0.15);
$("#div2").fadeTo("slow",0.4);
$("#div3").fadeTo("slow",0.7);
});
slideDown()
slideUp()
slideToggle()
Syntax:
$(selector).slideDown(speed,callback);
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
sliding completes.
Example
$("#flip").click(function(){
$("#panel").slideDown();
});
Syntax:
$(selector).slideUp(speed,callback);
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
sliding completes.
Example
$("#flip").click(function(){
$("#panel").slideUp();
});
If the elements are slide down, slideToggle() will slide them up.
If the elements are slide up, slideToggle() will slide them down.
$(selector).slideToggle(speed,callback);
The optional speed parameter can take the following values: "slow", "fast", milliseconds.
The optional callback parameter is the name of a function to be executed after the
sliding completes.
Example
$("#flip").click(function(){
$("#panel").slideToggle();
});
Syntax:
The optional speed parameter specifies the duration of the effect. It can take the
following values: "slow", "fast", or milliseconds.
The optional callback parameter is the name of a function to be executed after the
animation completes.
The following example demonstrates a simple use of the animate() method; it moves a
<div> element to the left, until it has reached a left property of 250px:
Example
$("button").click(function(){
$("div").animate({left:'250px'});
});
By default, all HTML elements have a static position, and cannot be moved.
To manipulate the position, remember to first set the CSS position property of the
element to relative, fixed, or absolute!
Example
$("button").click(function(){
$("div").animate({
left:'250px',
opacity:'0.5',
height:'150px',
width:'150px'
});
});
Example
$("button").click(function(){
$("div").animate({
left:'250px',
height:'+=150px',
width:'+=150px'
});
});
Example
$("button").click(function(){
$("div").animate({
height:'toggle'
});
});
This means that if you write multiple animate() calls after each other, jQuery creates an
"internal" queue with these method calls. Then it runs the animate calls ONE by ONE.
So, if you want to perform different animations after each other, we take advantage of
the queue functionality:
Example 1
$("button").click(function(){
var div=$("div");
div.animate({height:'300px',opacity:'0.4'},"slow");
div.animate({width:'300px',opacity:'0.8'},"slow");
div.animate({height:'100px',opacity:'0.4'},"slow");
div.animate({width:'100px',opacity:'0.8'},"slow");
});
The example below first moves the <div> element to the right, and then increases the
font size of the text:
Example 2
$("button").click(function(){
var div=$("div");
div.animate({left:'100px'},"slow");
div.animate({fontSize:'3em'},"slow");
});
The jQuery stop() method is used to stop animations or effects before it is finished.
The stop() method works for all jQuery effect functions, including sliding, fading and
custom animations.
Syntax:
$(selector).stop(stopAll,goToEnd);
The optional stopAll parameter specifies whether also the animation queue should be
cleared or not. Default is false, which means that only the active animation will be
stopped, allowing any queued animations to be performed afterwards.
The optional goToEnd parameter specifies whether or not to complete the current
animation immediately. Default is false.
So, by default, the stop() method kills the current animation being performed on the
selected element.
Example
$("#stop").click(function(){
$("#panel").stop();
});
Examples
The example below has a callback parameter that is a function that will be executed
after the hide effect is completed:
The example below has no callback parameter, and the alert box will be displayed
before the hide effect is completed:
jQuer - Chai i g
Chaining allows us to run multiple jQuery methods (on the same element) within a
single statement.
Tip: This way, browsers do not have to find the same element(s) more than once.
To chain an action, you simply append the action to the previous action.
The following example chains together the css(), slideUp(), and slideDown() methods.
The "p1" element first changes to red, then it slides up, and then it slides down:
Example
$("#p1").css("color","red").slideUp(2000).slideDown(2000);
Tip: When chaining, the line of code could become quite long. However, jQuery is not
very strict on the syntax; you can format it like you want, including line breaks and
indentations.
Example
$("#p1").css("color","red")
.slideUp(2000)
.slideDown(2000);
jQuery comes with a bunch of DOM related methods, that makes it easy to access and
manipulate elements and attributes.
The DOM defines a standard for accessing HTML and XML documents:
The following example demonstrates how to get content with the jQuery text() and
html() methods:
Example
$("#btn1").click(function(){
alert("Text: " + $("#test").text());
});
$("#btn2").click(function(){
alert("HTML: " + $("#test").html());
});
The following example demonstrates how to get the value of an input field with the
jQuery val() method:
Example
$("#btn1").click(function(){
alert("Value: " + $("#test").val());
});
The following example demonstrates how to get the value of the href attribute in a link:
Example
$("button").click(function(){
alert($("#w3s").attr("href"));
});
The following example demonstrates how to set content with the jQuery text(), html(),
and val() methods:
Example
$("#btn1").click(function(){
$("#test1").text("Hello world!");
});
$("#btn2").click(function(){
$("#test2").html("<b>Hello world!</b>");
});
$("#btn3").click(function(){
$("#test3").val("Dolly Duck");
});
The following example demonstrates text() and html() with a callback function:
Example
$("#btn1").click(function(){
$("#test1").text(function(i,origText){
return "Old text: " + origText + " New text: Hello world!
(index: " + i + ")";
});
});
$("#btn2").click(function(){
$("#test2").html(function(i,origText){
return "Old html: " + origText + " New html: Hello <b>world!</b>
(index: " + i + ")";
});
});
The following example demonstrates how to change (set) the value of the href attribute
in a link:
Example
$("button").click(function(){
$("#w3s").attr("href","http://www.w3schools.com/jquery");
});
The attr() method also allows you to set multiple attributes at the same time.
The following example demonstrates how to set both the href and title attributes at the
same time:
Example
$("button").click(function(){
$("#w3s").attr("href", function(i,origValue){
return origValue + "/jquery";
});
});
Example
$("p").append("Some appended text.");
Example
$("p").prepend("Some prepended text.");
However, both the append() and prepend() methods can take an infinite number of new
elements as parameters. The new elements can be generated with text/HTML (like we
have done in the examples above), with jQuery, or with JavaScript code and DOM
elements.
In the following example, we create several new elements. The elements are created
with text/HTML, jQuery, and JavaScript/DOM. Then we append the new elements to the
text with the append() method (this would have worked for prepend() too) :
Example
The jQuery before() method inserts content BEFORE the selected HTML elements.
Example
$("img").after("Some text after");
In the following example, we create several new elements. The elements are created
with text/HTML, jQuery, and JavaScript/DOM. Then we insert the new elements to the
text with the after() method (this would have worked for before() too) :
Example
function afterText()
{
var txt1="<b>I </b>"; // Create element with HTML
var txt2=$("<i></i>").text("love "); // Create with jQuery
var txt3=document.createElement("big"); // Create with DOM
txt3.innerHTML="jQuery!";
jQuer - Re o e Ele e ts
With jQuery, it is easy to remove existing HTML elements.
Remove Elements/Content
To remove elements and content, there are mainly two jQuery methods:
Example
$("#div1").remove();
Example
$("#div1").empty();
Example
$("p").remove(".italic");
Example Stylesheet
The following stylesheet will be used for all the examples on this page:
.important
{
font-weight:bold;
font-size:xx-large;
}
.blue
{
color:blue;
}
Example
$("button").click(function(){
$("h1,h2,p").addClass("blue");
$("div").addClass("important");
});
You can also specify multiple classes within the addClass() method:
Example
$("button").click(function(){
$("#div1").addClass("important blue");
});
Example
$("button").click(function(){
$("h1,h2,p").removeClass("blue");
});
Example
$("button").click(function(){
$("h1,h2,p").toggleClass("blue");
});
jQuer - ss Method
css("propertyname");
The following example will return the background-color value of the FIRST matched
element:
Example
$("p").css("background-color");
css("propertyname","value");
The following example will set the background-color value for ALL matched elements:
Example
$("p").css("background-color","yellow");
css({"propertyname":"value","propertyname":"value",...});
The following example will set a background-color and a font-size for ALL matched
elements:
Example
$("p").css({"background-color":"yellow","font-size":"200%"});
AJAX is the art of exchanging data with a server, and updating parts of a web page -
without reloading the whole page.
What is AJAX?
AJAX = Asynchronous JavaScript and XML.
Examples of applications using AJAX: Gmail, Google Maps, Youtube, and Facebook tabs.
With the jQuery AJAX methods, you can request text, HTML, XML, or JSON from a
remote server using both HTTP Get and HTTP Post - And you can load the external data
directly into the selected HTML elements of your web page!
Writing regular AJAX code can be a bit tricky, because different browsers have
different syntax for AJAX implementation. This means that you will have to write
extra code to test for different browsers. However, the jQuery team has taken care
of this for us, so that we can write AJAX functionality with only one single line of
code.
The load() method loads data from a server and puts the returned data into the selected
element.
Syntax:
The required URL parameter specifies the URL you wish to load.
The optional data parameter specifies a set of querystring key/value pairs to send along
with the request.
The optional callback parameter is the name of a function to be executed after the
load() method is completed.
The following example loads the content of the file "demo_test.txt" into a specific <div>
element:
Example
$("#div1").load("demo_test.txt");
The following example loads the content of the element with id="p1", inside the file
"demo_test.txt", into a specific <div> element:
Example
$("#div1").load("demo_test.txt #p1");
The optional callback parameter specifies a callback function to run when the load()
method is completed. The callback function can have different parameters:
The following example displays an alert box after the load method() completes. If the
load() method has succeed, it displays "External content loaded successfully!", and if it
fails it displays an error message:
Example
The jQuery get() and post() methods is used to request data from the server with an
HTTP GET or POST request.
GET is basically used for just getting (retrieving) some data from the server. Note: The
GET method may return cached data.
POST can also be used to get some data from the server. However, the POST method
NEVER caches data, and is often used to send data along with the request.
To learn more about GET and POST, and the differences between the two methods,
please read our HTTP Methods GET vs POST chapter.
Syntax:
The required URL parameter specifies the URL you wish to request.
The optional callback parameter is the name of a function to be executed if the request
succeeds.
The following example uses the $.get() method to retrieve data from a file on the server:
Example
$("button").click(function(){
$.get("demo_test.asp",function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
The second parameter is a callback function. The first callback parameter holds the
content of the page requested, and the second callback parameter holds the status of
the request.
<%
response.write("This is some text from an external ASP file.")
%>
Syntax:
$.post(URL,data,callback);
The required URL parameter specifies the URL you wish to request.
The optional data parameter specifies some data to send along with the request.
The optional callback parameter is the name of a function to be executed if the request
succeeds.
Example
$("button").click(function(){
$.post("demo_test_post.asp",
{
name:"Donald Duck",
city:"Duckburg"
},
function(data,status){
alert("Data: " + data + "\nStatus: " + status);
});
});
Then we pass in some data to send along with the request (name and city).
The ASP script in "demo_test_post.asp" reads the parameters, process them, and return
a result.
The third parameter is a callback function. The first callback parameter holds the
content of the page requested, and the second callback parameter holds the status of
the request.
<%
dim fname,city
fname=Request.Form("name")
city=Request.Form("city")
Response.Write("Dear " & fname & ". ")
Response.Write("Hope you live well in " & city & ".")
%>
What if you wish to use other frameworks on your pages, while still using jQuery?
Some of the other frameworks also use the $ character as a shortcut (just like jQuery),
and then you suddenly have two different frameworks using the same shortcut, which
might result in that your scripts stop working.
The jQuery team have already thought about this, and implemented the noConflict()
method.
You can of course still use jQuery, simply by writing the full name instead of the
shortcut:
Example
$.noConflict();
jQuery(document).ready(function(){
jQuery("button").click(function(){
jQuery("p").text("jQuery is still working!");
});
});
You can also create your own shortcut very easily. The noConflict() method returns a
reference to jQuery, that you can save in a variable, for later use. Here is an example:
Example
var jq = $.noConflict();
jq(document).ready(function(){
jq("button").click(function(){
If you have a block of jQuery code which uses the $ shortcut and you do not want to
change it all, you can pass the $ sign in as a parameter to the ready method. This allows
you to access jQuery using $, inside this function - outside of it, you will have to use
"jQuery":
Example
$.noConflict();
jQuery(document).ready(function($){
$("button").click(function(){
$("p").text("jQuery is still working!");
});
});