We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12
ICT1512
Chapter 12 Lesson 1
Getting Started with
jQuery Working with jQuery Selectors Handlin Events with jQuery Objectives • You will have mastered the material in this lesson when you can: – Use the jQuery library to apply jQuery methods to a selection of elements. – Modify the contents and structure of the DOM using jQuery. – Manage browser events using jQuery. Getting Started with jQuery • jQuery is a highly successful, free JavaScript library (organized collection of JavaScript code) that was originally developed to facilitate cross-browser compatibility • jQuery's core features: – Easier DOM navigation and manipulation – Tools for event management – Animation effects – Widgets such as photo slideshows, calendars, and web form controls – Easier AJAX request creation and response handling • Collections of third-party jQuery plugins for front-end development are also available • Versions of jQuery – Has gone through several releases since its initial release in August 2006 – Current version is 3.6.0 Loading jQuery • Accessible as either a .js file downloaded to your website or a file residing on a Content Delivery Network (CDN) – Using a CDN is the best practice unless your app needs to work offline • jQuery recommends that links to the CDN include subresource integrity checking (SRI) • jQuery library versions: – Uncompressed or minified (for faster performance) – Normal jQuery build (full features of the library) or slim jQuery build (lacks features such as AJAX and some animation tools) Is jQuery Still Relevant? • Many features have been supplanted by JavaScript, CSS, or the Fetch API • Important to be familiar with it because it is still widely used in top websites Working with jQuery Selectors • General syntax for jQuery commands: $(selector).action(parameters) – selector references a selection of elements from the web page document – action is an action performed on that selection – parameters are parameter values associated with that action, such as functions • Sample code to apply the ready() action to the web document when it is loaded and read: $(document).ready(function() { jQuery statements })
or (with later versions of jQuery):
$(function() { jQuery statements }); Selecting Elements from the DOM • The jQuery $(selector) expression references a selection of elements based on CSS selector patterns • Sample expressions: – $("dd > p") returns an array of all paragraphs nested as direct children of the dd element – $("dd > p, dt > p") returns paragraphs that are direct children of a dt or dd element – $("article.story p") selects all paragraphs nested within article elements belonging to the story class – $("article.story p")[0] selects the first paragraph within an article element because the selected elements can be treated as items within an array – jQuery selectors can be saved as variables, e.g.: let mainPara = $("h1#main p"); $(mainPara) // references paragraphs of the main h1 heading • The variable is placed with the $() expression so it's treated as a jQuery selector Optimizing jQuery selectors • The fastest way to retrieve a specific element is by its id value • Be specific in selectors to limit the search • Include a context for selectors to reduce the size of the node tree to search • Cache selectors by storing them within variables • Avoid pseudo-selectors; use id attributes to reference specific nodes instead Traversing the DOM with jQuery
• jQuery methods enable navigation of the node tree from parent
elements and through sibling and child elements • Sample expression that returns an array of all sibling elements of the main article that are themselves articles: $("article#main").siblings("article") • Sample use of object chaining (appending the selector with jQuery methods that extend or redirect the selected elements) to include only sibling articles with unordered lists: $("article#main").siblings("article").has("ul") Working with Attributes and CSS Properties • jQuery methods for working with element attributes and CSS properties allow you to narrow a search based on element or CSS property values or to create new attributes and CSSS properties • Sample expression to retrieve the value of the width attribute for the first inline image of the slides class: $("img.slides").first().attr("width") • Sample expression to set the width to 500 pixels: $("img.slides").first().attr("width", "500px") • Sample expression to set the width and height using attributes in JSON format: $("img.slides").first().({"width": "500px", "height": "300px"}) • Sample expression to set the color and font size of the main h1 heading: $("h1#main").css({ fontSize: "2em", color: "blue" }) • jQuery returns the computed values of CSS styles, whereas the style sheet may contain values defined in other units • E.g., 2 em and green from CSS become 32 pixels and RGB values 0, 128, and 0 when returned by jQuery Changing the DOM Structure • jQuery methods can be used to edit, replace, or add DOM elements • jQuery methods can act as both getters (methods that get values) and setters (methods that set values) – Sample getter: $("input#username").val() – Sample setter: $("input#username".val("dawson4815") – Sample jQuery statement to change heading styles in an HTML fragment: $("<h2 class='new'>Minor Heading</h2>").replaceAll("h1.old");
– The wrap() method encloses elements within a specified HTML
structure, creating a new parent for the elements, e.g.: $("h1.story").wrap("<article></article>")
– The unwrap() method can be used afterward to restore the original
structure, e.g.: $("h1.story").unwrap() Handling Events with jQuery • General syntax for managing events with jQuery, where handler is the function that handles the event: $(selector).event(handler) – jQuery responds to events during the bubbling phase only • jQuery supports an event object that is passed as an object of the handler function • Sample code that applies the click() event to every h1 element in the document to display the text of the element that follows the heading: $("h1").click(e => { console.log($(e.target).next().text()); }); – The heading clicked is stored in the e.target property, the next() method selects the next sibling element, and the text() method displays the text stored within that sibling – The event object property must be placed within the jQuery selector so that jQuery handles the associated methods