Join the slack and discord community at devNursery.com
Window Object
Represents the entire browser window
action | syntax | notes |
---|---|---|
what browser is user using | window.navigator | Read More |
store data in localStorage | window.localStorage.setItem("name", JSON.stringify(myObject)) | Read More |
get data from localStorage | const data = JSON.parse(window.localStorage.getItem("name")) | Read More |
remove data from localStorage | window.localStorage.removeItem("name") | Read More |
send user to another webpage | window.location = "https://www.google.com" | Read More |
selecting and creating DOM Nodes
The document object represents the document defined by the <doctype!>
tag, essentially this of document as an object representing everything within the <html>
tags in your html file.
action | plain vanilla dom | jquery | Notes |
---|---|---|---|
select an element based on CSS selector | document.querySelector("#id") | $("#id") | |
select multiple elements based on CSS selector | document.querySelectorAll(".class") | $(".class") | |
run code after dom loads | window.addEventListener("load", () => {...code here}) | $(() => {...code here}) | You could also either move script tag to bottom of body or use defer keyword in script tag |
Create a new element | document.createElement("h1") | $("<h1>") | with jQuery you could also add attributes in the string like $("<h1 id='cheese'>") |
Manipulating DOM nodes
Below are ways to work with selected elements. el
will represent an elements selected with plain javascript like const el = document.querySelector("h1")
and $el
will represent an element selected with jQuery such as const $el = $("h1")
.
action | plain vanilla dom | jquery | Notes |
---|---|---|---|
edit text | el.innerText = "new value" | $el.text("new value") | |
edit html | el.innerHTML = "<h1>new value</h1>" | $el.html("<h1>new value</h1>") | |
add a css class | el.classList.add("className") | $el.addClass("className") | |
remove a css class | el.classList.remove("className") | $el.removeClass("className") | |
toggle a css class | el.classList.toggle("className") | $el.toggleClass("className") | |
get the value of an attribute | el.getAttribute("id") | $el.attr("id") | |
set the value of an attribute | el.setAttribute("id", "new value") | $el.attr("id", "new value") | |
remove an attribute | el.removeAttribute("id") | $el.removeAttr("id") | |
get the value of a css property | el.style.backgroundColor | $el.css("background-color") | every css property in the style object has camel case names |
change a css property | el.style.backgroundColor = "black" | $el.css("background-color", "black") | every css property in the style object has camel case names |
empty the contents of the element | el.innerHTML = "" | $el.empty() | |
remove the element from DOM | el.remove() | $el.remove() | |
append element as last child of another node | target.append(el) | $target.append(el) | |
prepend element as last child of another node | target.prepend(el) | $target.prepend(el) | |
insert element before another element | target.before(el) | $target.before($el) | |
insert element after another element | target.after(el) | $target.after($el) | |
listen for events on an element | el.addEventListener("event", (event) => {...what happens here}) | $el.on("event", (event) => {...what happens here}) |
Looping Over Data to Create Elements
Plain Vanilla
// array of data const cheeses = ["gouda", "munster", "brie"] // select existing ul element, add an li for each cheese const ul = document.querySelector("ul") for (cheese of cheeses){ //create li const li = document.createElement("li") // add text to the li li.innerText = cheese // append to ul ul.append(li) }
jQuery
// array of data const cheeses = ["gouda", "munster", "brie"] // select existing ul element, add an li for each cheese const $ul = $("ul") for (cheese of cheeses){ //create li const $li = $("<li>") // add text to the li $li.text(cheese) // append to ul $ul.append($li) }
Looping Over Elements to Modify Theme
Plain Vanilla
// Select all h1's on the page to make them pink const h1s = document.querySelectorAll("h1") // loop over h1s for (h1 of h1s){ h1.style.color = "pink" }
jQuery
// Select all h1's on the page to make them pink const $h1s = $("h1") // loop over h1s for (h1 of $h1s){ // turn the h1 node into a jQuery object const $h1 = $(h1) // make it pink const $h1.css("color", "pink") }
Top comments (0)