Jquery: Cs 380: Web Programming
Jquery: Cs 380: Web Programming
◦window.onload
The direct= jQuery translation
function() { // do stuff with the DOM }
◦$(document).ready(function()
The jQuery way { // do stuff with the DOM });
// group selector
var elems = $("#myid, p");
// context selector
var elems = $("#myid < div p");
// complex selector
var elems = $("#myid < h1.special:not(.classy)");
jQuery Selectors
http://api.jquery.com/category/selectors/
jQuery / DOM comparison
DOM method jQuery equivalent
getElementById("id") $("#id")
getElementsByTagName("tag") $("tag")
getElementsByName("somename") $("[name='somename']")
querySelector("selector") $("selector")
querySelectorAll("selector") $("selector")
Exercise
Use jQuery selectors to identify elements
with these properties in a hypothetical
page:
◦ All p tags that have no children, but only if
they don't have a class of ignore
◦ Any element with the text "REPLACE_ME" in
it.
◦ All div tags with a child that has a class
of special
◦ All heading elements (h1, h2, h3, h4, h5, h6)
◦ Every other visible li.
jQuery terminology
the jQuery function
refers to the global jQuery object or the $
function depending on the context
a jQuery object
the object returned by the jQuery function that
often represents a group of elements
selected elements
the DOM elements that you have selected for,
most likely by some CSS selector passed to the
jQuery function and possibly later filtered further
The jQuery object
The $ function always (even for ID selectors) returns an
array-like object called a jQuery object.
The jQuery object wraps the originally selected DOM
objects.
You can access the actual DOM object by accessing the
elements of the jQuery object.
// false
document.getElementById("id") == $("#myid");
document.querySelectorAll("p") == $("p");
// true
document.getElementById("id") == $("#myid")[0];
document.getElementById("id") == $("#myid").get(0);
document.querySelectorAll("p")[0] == $("p")[0];
Using $ as a wrapper
$ adds extra functionality to DOM
elements
passing an existing DOM object to $ will
give it the jQuery upgrade
// convert regular DOM objects to a jQuery object
var elem = document.getElementById("myelem");
elem = $(elem);
var elems = document.querySelectorAll(".special");
elems = $(elems);
DOM context identification
You can use querySelectorAll() and querySelector() on
any DOM object.
When you do this, it simply searches from that part of
the DOM tree downward.
Programmatic equivalent of a CSS context selector
var list = document.getElementsByTagName("ul")[0];
var specials = list.querySelectorAll('li.special');
find / context parameter
jQuery gives two identical ways to do
contextual element identification
var elem = $("#myid");
CS380 20
Elements vs text nodes
<div>
<p>
This is a paragraph of text with a
<a href="page.html">link</a>.
</p>
</div> HTML