Customer Service 1-800-221-5528

Murach’s JavaScript and jQuery (3rd Edition)

by Mary Delamater and Zak Ruvalcaba
18 chapters, 632 pages, 252 illustrations
Published February 2017
ISBN 978-1-943872-05-3
List price: $57.50

Today, every web developer should know how to use JavaScript for what it does best and jQuery for what it does best. The trouble is that traditional JavaScript books don’t take that approach. But now, this book integrates the teaching of JavaScript and jQuery so your students learn the skills that are actually used on the job (for the most recent edition, see the 4th Edition). Beyond that, this book uses a didactic approach that works for students with no programming background as well as for students who have already taken a programming course.

Latest Edition

Murach's JavaScript and jQuery (4th Edition)

Published September 2020

Your books are so good that I threw away my assigned JavaScript and jQuery book for my class and bought Murach’s JavaScript and jQuery (which has, by the way, helped restore my 4.0 GPA).”

Blaine Simcox, Student, Michigan

  • About this Book
  • Table of Contents
  • Courseware
  • FAQs
  • Corrections

Book description

To present the JavaScript and jQuery skills that your students need in a manageable progression, this book is divided into three sections, representing the three levels of expertise that your students will achieve with this book.

Section 1: JavaScript essentials

  • Section 1 of this book presents a 7-chapter course in JavaScript that gets your students off to a great start. This section works for programming beginners as well as for students with some programming experience because the pace is adjustable. Beginners can move through the material slowly and do all the exercises. Students with some programming experience can move more quickly and do just the exercises that you assign.
  • Either way, when they finish this section, your students will be able to develop JavaScript applications of their own. They will also have all of the skills that they need for using jQuery. This will put your course far ahead of what you can accomplish with competing books.

Section 2: The jQuery essentials

  • In this section, your students will learn how to use jQuery to create JavaScript applications like image swaps, collapsible panels, slide shows, carousels, user-friendly forms…and more…with far less coding than you’d have to do in native JavaScript.
  • To begin, chapter 8 presents the jQuery selectors, methods, and event methods that are used the most. Then, the next 3 chapters build on that base as they focus on the use of effects and animations, forms and data validation, jQuery plugins, and jQuery UI widgets.
  • The last chapter in this section shows how to use the jQuery for Ajax and JSON to get data from a web server and add it to a web page without reloading the entire page. This of course is an essential skill for today’s web developers.

Section 3: Advanced JavaScript skills

  • After your students finish sections 1 and 2, they will have the JavaScript and jQuery skills that every web developer should have. That by itself is a complete JavaScript and jQuery course.
  • But if your course has the time for more, the 6 chapters in section 3 will take your students to the next level of JavaScript expertise. Here, they’ll learn how to use numbers, strings, and dates...how to handle exceptions and use regular expressions...when and how to use browser objects, cookies, web storage, and arrays...and how to create and use their own objects. Then, the last chapter in this section presents expert-level skills, like how to use closures, the module pattern, and IIFEs to create jQuery plugins.
  • What’s especially interesting about section 3 is that all of the examples show how to use JavaScript in conjunction with jQuery. Because that’s the way applications are coded in the real world, this is clearly the best way to learn the advanced JavaScript skills. And yet, we haven’t seen another book that combines JavaScript and jQuery in this way.

Why this is the right book for every JavaScript course

To start, we believe this is the right book for every JavaScript course because it presents the skills that are needed on the job. That of course includes jQuery skills because real-world developers don’t use JavaScript for tasks that can be done better with jQuery. For that reason alone, you can rule out JavaScript books that don’t include jQuery.

Beyond that, though, our book is designed in a way that makes it adaptable for any type of JavaScript course. For instance, here’s how our book can work for some common variations of JavaScript courses:

JavaScript as a first programming course

Because section 1 is designed for students without any programming experience, this book can be used for a first programming course. Then, after your students complete that section, you can take them as far as time permits by assigning chapters from sections 2 and 3.

When you plan your course, keep in mind that only the first chapter in the jQuery section is required. After that, you can assign the chapters in sections 2 and 3 that are most appropriate for your students and your course.

JavaScript and jQuery for web designers

The first two sections of this book present the concepts and skills that every web designer should at least be aware of. So if your course is for web designers, you can start with section 1, which is designed to work for non-programmers.

Then, you can add chapters from the jQuery section because they show how to implement the common features of modern websites. That includes features like carousels, tabs, and slide shows, but it also includes using Ajax and JSON to get data for a web page without reloading the page.

If you still have time, you can finish the course with selected chapters from section 3. For instance, the chapter on browser objects, cookies, and web storage presents concepts that all web designers should be aware of. And the chapter on arrays presents concepts that every programmer should be aware of.

JavaScript for IS or CS majors with programming experience

If your students have experience with another language, they should move quickly through section 1 of our book. They will find, however, that JavaScript has some intricacies that aren’t found in other languages, so they will still be challenged.

Then, you can assign all of the chapters in the jQuery section. Or, if you want your course to focus more on JavaScript than jQuery, you can assign just the first chapter in this section plus selected chapters of your own choosing. In other words, you don’t have to assign the chapters in sequence, and the only one that’s required is chapter 8.

At that point, you can start working your way through the chapters in section 3. If your students successfully complete all of them, they will reach a professional level of expertise.

What's new with ECMAScript 2015 and 2016

Because the book focuses on the essential skills that every JavaScript developer should have, it doesn’t present all of the new features that are in the ECMAScript 2015 and 2016 specifications. If you want to include some of those features in your course, however, we offer a FREE PDF download called “What’s new with ECMAScript 2015 and 2016” that presents all of the new features plus the Internationalization API. This PDF is both tutorial and reference, and it’s especially designed for use with our JavaScript and jQuery book.

Your students can access this download by going to the FREE Downloads tab on the book page on our retail site. And you can download this PDF right now.

What software your students need

To develop JavaScript applications, your students need:

  • any text editor
  • Google Chrome along with the default browser on their systems: Internet Explorer or Edge for Windows and Safari for Mac OS

Although your students can use any text editor with this book, a text editor that includes syntax coloring and auto-formatting will help them develop applications more quickly and with fewer errors. In the book, we recommend Aptana Studio 3; however, it’s no longer supported and has become hard to install.

So now, we recommend Brackets. It’s available for free, it can be used for entering JavaScript and jQuery code (as well as HTML and CSS code), and it runs on Windows, Mac OS, and Linux systems. To help your students get started with installing and using Brackets, we’ve created a Brackets tutorial that you can use in place of the Aptana material in the book. You can distribute this to your students or have them download it from the book page at our retail website.

To test a web page, your students can use the default browser on their systems. But we recommend that they also test their pages in Chrome, which includes a terrific set of developer tools. Appendix A provides a procedure for installing Chrome, and chapter 5 shows how to use Chrome for debugging.

About our HTML5 and CSS3 book

If you like our JavaScript, and jQuery book, you may also be interested in our HTML5 and CSS3 book. This book presents a complete course in web design using HTML5 and CSS3. It starts with a crash course in the first 8 chapters...including a chapter on Responsive Web Design...that gets your students using HTML and CSS at a professional level. It is followed by four sections that can be taught in whatever sequence you think works the best.

So, if your students take an HTML and CSS course before they take the JavaScript and jQuery course, please consider our HTML5 and CSS3 book along with our JavaScript and jQuery book. These books are designed to work seamlessly in a two- or three-course sequence. Both books use our unique didactic methods so your students will learn more in less time. And ours are the only books that ensure that your students will learn the HTML5, CSS3, JavaScript, and jQuery skills that are actually used on the job.

What people say about this book

“If you are new to web design or an old pro like me, this book is a must-have in my opinion. I love how it starts out with the basics and then moves on to the good stuff. Each chapter is full of examples and sample code showing you how to do the most common techniques that you will face as a web developer/designer.
     “I have not seen a better book on the subject. This one will be on my desk for a while!”
- Jeremy Johnson; Review posted at DreamInCode.net

From Dr. Dobb’s Must-Have Books for JavaScript: “The aim of the book is to teach jQuery in an intensely hands-on way. It succeeds in this and probably provides the fastest way to learn and master the framework.”
- Andrew Binstock, Editor-in-Chief, Dr. Dobb’s

“I just finished a pretty heavy application project, the first serious work I have done with jQuery and Ajax. Along the way, I had to deal with preloading images, manipulations of the DOM, tabs, plugins, and Dialogs…. I kept this book at my side throughout the entire project, and it was indispensable. The answers were right there at every turn. All the examples made sense to me, and they all worked!”
- Alan Vogt, ETL Consultant, Information Builders, Inc.

“What I like about this and other Murach books is that within minutes of opening the book, you are developing hands-on with the technology in question.”
- Charles Zimmerman, Developer

“An essential characteristic of this book, as well as the other Murach books, is that the examples, programs, and applications are all thoroughly tested. This book will work WONDERFULLY to help you build better and more robust websites!”
- Marvin Schneider, Instructor, New York

“I have several books on JavaScript, but the best one is this one. The text, examples, descriptions, and even the layout all bring you, the learner, an ease of use that is missing in other books.”
- Chris Wallace, Denver Visual Studio User Group

To view the table of contents for this book in a PDF, just click on the link below:

Table of Contents

Section 1 JavaScript essentials

Chapter 1 Introduction to web development

How a web application works

The components of a web application

How static web pages are processed

How dynamic web pages are processed

How JavaScript is used for client-side processing

What you need to know about the ECMAScript specification

The components of a JavaScript application

The HTML

The CSS

The JavaScript

The HTML skills that you need for this book

How to use the HTML5 semantic elements

How to use the div and span elements

How to use the basic HTML attributes

The CSS skills that you need for this book

How to provide the CSS styles for an HTML page

How to code the basic CSS selectors

How to code CSS style rules

How to test a JavaScript application

How to run a JavaScript application

How to find errors in your code

How to provide cross-browser compatibility

How to use Aptana to develop JavaScript applications

How to create or import a project

How to work with files

How to edit a file

How to run a JavaScript application

Chapter 2 Getting started with JavaScript

How to include JavaScript in an HTML document

Two ways to include JavaScript in the head of an HTML document

How to include JavaScript in the body of an HTML document

The JavaScript syntax

How to code JavaScript statements

How to create identifiers

How to use comments

How to work with JavaScript data

The primitive data types

How to declare and assign values to variables

How to code arithmetic expressions

How to use arithmetic expressions in assignment statements

How to concatenate strings and include special characters in strings

How to use objects, methods, and properties

Introduction to objects, methods, and properties

How to use the parseInt() and parseFloat() methods of the window object

How to use the write() and writeln() methods of the document object

Two illustrative applications

The Miles Per Gallon application

The Test Scores application

Chapter 3 The essential JavaScript statements

How to code conditional expressions

How to use the relational operators

How to use the logical operators

How to code the basic control statements

How to code if statements

How to code while and do-while loops

How to code for loops

Three illustrative applications

The enhanced Miles Per Gallon application

The Future Value application

The enhanced Test Scores application

How to work with arrays

How to create and use arrays

How to use for loops to work with arrays

The Test Scores application with an array

The user interface

The JavaScript

Chapter 4 How to work with JavaScript objects, functions, and events

How to use objects to work with data

How to use the window and document objects

How to use Textbox and Number objects

How to use Date and String objects

How to use functions

How to create and call a function expression

How to create and call a function declaration

When and how to use local and global variables

When and how to use strict mode

How to handle events

How to attach an event handler to an event

How to use an onload event handler to attach other event handlers

Two illustrative applications

The Miles Per Gallon application

The Email List application

Chapter 5 How to test and debug a JavaScript application

An introduction to testing and debugging

The three types of errors that can occur

Common JavaScript errors

How to plan the test runs

How to use top-down coding and testing to simplify debugging

How to debug with Chrome’s developer tools

How to use Chrome to find errors

How to use breakpoints and step through your code

Other debugging methods

How to trace the execution of your JavaScript code

How to view the source code

When and how to validate the HTML

Chapter 6 How to script the DOM with JavaScript

DOM scripting properties and methods

DOM scripting concepts

The properties of the Node interface

The methods of the Document and Element interfaces

The properties of the DOM HTML specification

The FAQs application

The HTML and CSS

The JavaScript

How to script forms and controls

How forms work

How to script Textbox, Textarea, and Select objects

How to script Radio and Checkbox objects

How to use the methods and events for forms and controls

The Register application

The HTML and CSS

The JavaScript

How to add and remove nodes from the DOM

How to use the innerHTML property of the Element interface

How to view the changes to the DOM in Chrome

The Register application with a table

The HTML and CSS

The JavaScript

Chapter 7 How to work with links, images, and timers

How to work with links and images

How to cancel the default action of an event

How to preload images

The Image Swap application

The HTML and CSS

The JavaScript

How to use timers

How to use a one-time timer

How to use an interval timer

The Slide Show application

The HTML and CSS

The JavaScript

Section 2 jQuery essentials

Chapter 8 Get off to a fast start with jQuery

Introduction to jQuery

What jQuery is

How jQuery can simplify JavaScript development

The basics of jQuery programming

How to include jQuery in your web pages

How to code jQuery selectors

How to call jQuery methods

How to use jQuery event methods

The Email List application in jQuery

The user interface and HTML

The jQuery

A working subset of selectors, methods, and event methods

The most useful selectors

The most useful methods

The most useful event methods

Other event methods that you should be aware of

Three illustrative applications

The FAQs application in jQuery

The Image Swap application in jQuery

The Image Rollover application in jQuery

Chapter 9 How to use effects and animations

How to use effects

The jQuery methods for effects

The FAQs application with jQuery effects

A Slide Show application with effects

The user interface, HTML, and CSS

Two ways to code the jQuery

How to stop and start a slide show

How to use animation

How to use the basic syntax of the animate() method

How to chain animate() methods

How to use the delay(), stop(), and finish() methods

How to use easings with effects and animations

How to use the advanced animate syntax and the methods

for working with queues

A Carousel application with animation

The user interface, HTML, and CSS

The jQuery

Chapter 10 How to work with forms and data validation

Introduction to forms and controls

How forms work

The HTML5 controls for working with forms

The HTML5 and CSS3 features for data validation

How to use jQuery to work with forms

The jQuery selectors and methods for forms

The jQuery event methods for forms

A Validation application that uses JavaScript

The user interface and HTML

Some of the JavaScript for the application

Chapter 11 How to use jQuery plugins and jQuery UI widgets

Introduction to jQuery plugins

How to find jQuery plugins

How to use any jQuery plugin

How to use three of the most popular plugins

How to use the Lightbox plugin for images

How to use the bxSlider plugin for carousels

How to use the Cycle 2 plugin for slide shows

Introduction to jQuery UI

What jQuery UI is and where to get it

How to download jQuery UI

How to include jQuery UI in your web pages

How to use any jQuery UI widget

How to use five of the most popular jQuery UI widgets

How to use the Accordion widget

How to use the Tabs widget

How to use the Button and Dialog widgets

How to use the Datepicker widget

Chapter 12 How to use Ajax, JSON, and Flickr

Introduction to Ajax

How Ajax works

Common data formats for Ajax

The members of the XMLHttpRequest object

How to use the XMLHttpRequest object

How to use the jQuery shorthand methods for Ajax

The jQuery shorthand methods for working with Ajax

How to use the load() method to load HTML data

How to use the $.get() or $.post() method to load XML data

How to use the $.getJSON() method to load JSON data

How to send data with an Ajax request

How to use the $.ajax() method for working with Ajax

The syntax of the $.ajax() method

How to use the $.ajax() method to load data

How to use Ajax with Flickr

How to use the feed API for Flickr

How to display Flickr data on a page

How to review the feed from a website

How to display descriptions for a Flickr photo feed

How to search for photos by tags

Section 3 Advanced JavaScript skills

Chapter 13 How to work with numbers, strings, and dates

How to work with numbers

How to use the properties and methods of the Number object

How to use the properties and methods of the Math object

How to generate a random number

The PIG application

The HTML

The JavaScript

How to work with strings

How to use the properties and methods of the String object

Examples of working with strings

How to work with dates and times

How to create Date objects

The methods of the Date object

Examples of working with dates

The Count Down application

The HTML and CSS

The JavaScript

Chapter 14 How to work with control structures, exceptions, and regular expressions

What else you need to know about control structures

How to use the equality and identity operators

How to use the break and continue statements

How to use the switch statement

How to use the conditional operator

How to use the AND and OR operators for selections

The Invoice application

The HTML

The JavaScript

How to handle exceptions

How to use try-catch statements

How to create and throw Error objects

How to use regular expressions

How to create and use regular expressions

How to match special characters and types of characters

How to match string positions, subpatterns, and repeating patterns

Regular expressions for data validation

The Account Profile application

The HTML and CSS

The JavaScript

Chapter 15 How to work with browser objects, cookies, and web storage

How to script browser objects

How to use the location object

How to use the history object

The Tutorial application

The HTML

The JavaScript

How to use cookies

An introduction to cookies

How to create cookies

How to read cookies

How to delete cookies

The Task List application

The HTML and CSS

The JavaScript

How to use web storage

How to use local and session storage

The Task List application with web storage

How to use Chrome to work with items in the browser

How to view and delete cookies

How to view, edit, and delete items in web storage

Chapter 16 How to work with arrays

How to create and use an array

How to create an array

How to add and delete array elements

How to use for loops to work with arrays

How to use for-in loops to work with arrays

How to use the methods of an Array object

Methods that accept simple parameters

Methods that accept functions as parameters

Examples of the Array methods

The Task List application

The user interface

The JavaScript

Other skills for working with arrays

How to use a String method to create an array

How to create and use an associative array

How to create and use an array of arrays

The Task List 2.0 application

The HTML

The JavaScript

Chapter 17 How to create and use your own objects

Basic skills for working with objects

How to create and use the native object types

How to create your own objects with object literals

How to extend or modify an object

How to create and use JavaScript libraries

The Miles Per Gallon application

The HTML

The JavaScript

How to create and call constructors

How to create your own object types with constructor functions

What else you should know about prototypes

The Trips application

The HTML

The JavaScript

How to create a factory function

How to use the create() method of the Object object

The Trips application with a factory function

Advanced skills for working with objects

How to use the arguments property of a Function object

How to create cascading methods

How to inherit methods from another object

How to use the this keyword

The Task List application

The HTML and CSS

The task and storage libraries

The task list library

The main JavaScript file

Chapter 18 How to create and use closures, IIFEs, the module pattern, and plugins

How to use closures

How closures work

How to use closures to create private state

How to work with the this keyword in closures

The Slide Show application

The HTML

The slide show library

The main JavaScript file

How to use immediately invoked function expressions

How to code an IIFE

How to use an IIFE to solve the closure loop problem

How to work with the module pattern

What the module pattern is

How to augment a module and use accessor properties

The Slide Show application with the module pattern

The HTML

The slide show library

The slide show enhancements library

The main JavaScript file

How to use the module pattern to create jQuery plugins

The structure of a plugin

How to code a plugin that highlights the items in a menu

How to add options to a plugin

A Blackjack application that uses a blackjack plugin

The HTML and the main JavaScript file

The deck and hand files of the blackjack plugin

The game file of the blackjack plugin

The main file of the blackjack plugin

How to compress and combine the files for a plugin

If you aren’t already familiar with the instructor’s materials that we provide for our books, please go to About our Courseware. As you will see, our courseware consists of the end-of-chapter activities in each book, the files in the student download at our retail site, and the instructor’s materials. These components provide everything that other publishers provide in a way that delivers better results.

If you are familiar with our instructor’s materials, here’s a quick summary of the courseware for this book. For a detailed description in PDF format, please read the Instructor’s Summary.

End-of-chapter activities in the book

  • Term lists
  • Chapter summaries
  • Practice exercises

Student download at our retail site

  • HTML, CSS, JavaScript, and jQuery source code for all the applications that are presented in the book
  • Starting source code for the exercises in the book, including the HTML and CSS files that provide the user interface
  • Solutions to the book exercises so your students won’t get hung up by trivial errors as they work on their own

Appendix A in the book gives your students complete instructions for downloading and installing these items on a PC or Mac.

Instructor’s materials

  • Instructional objectives by chapter
  • PowerPoint slides for classroom presentations
  • Test banks in multiple formats
  • Extra chapter exercises and their solutions...so your students won’t have the solutions for these exercises
  • Short exercises that can be used for added practice, quizzes, or tests
  • 3 case studies that provide more extensive practice and can be used as midterm or final projects

To view the "Frequently Asked Questions" for this book in a PDF, just click on this link: View the questions

Then, if you have any questions that aren't answered here, please email us. Thanks!

To view the corrections for this book in a PDF, just click on this link: View the corrections

Then, if you find any other errors, please email us so we can correct them in the next printing of the book. Thank you!

Murach college books and courseware since 1974