Created
August 30, 2019 01:37
-
-
Save enqtran/c0cfd0bb154a4b1b6ddd8f0f64253205 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
1. Selecting elements | |
// jQuery, select all instances of .box | |
$(".box"); | |
// Instead, select the first instance of .box | |
document.querySelector(".box"); | |
// …or select all instances of .box | |
document.querySelectorAll(".box"); | |
2. Running a function on all elements in a selection | |
// with jQuery | |
// Hide all instances of .box | |
$(".box").hide(); | |
// Without jQuery | |
// Loop over the array of elements to hide all instances of .box | |
document.querySelectorAll(".box").forEach(box => { box.style.display = "none" } | |
3. Finding one element within another | |
// With jQuery | |
// Select the first instance of .box within .container | |
var container = $(".container"); | |
// Later... | |
container.find(".box"); | |
// Without jQuery | |
// Select the first instance of .box within .container | |
var container = document.querySelector(".container"); | |
// Later... | |
container.querySelector(".box"); | |
4. Traversing the tree with parent(), next(), and prev() | |
// with jQuery | |
// Return the next, previous, and parent element of .box | |
$(".box").next(); | |
$(".box").prev(); | |
$(".box").parent(); | |
// Without jQuery | |
// Return the next, previous, and parent element of .box | |
var box = document.querySelector(".box"); | |
box.nextElementSibling; | |
box.previousElementSibling; | |
box.parentElement; | |
5. Working with events | |
// With jQuery | |
$(".button").click(function(e) { /* handle click event */ }); | |
$(".button").mouseenter(function(e) { /* handle click event */ }); | |
$(document).keyup(function(e) { /* handle key up event */ }); | |
// Without jQuery | |
document.querySelector(".button").addEventListener("click", (e) => { /* ... */ }); | |
document.querySelector(".button").addEventListener("mouseenter", (e) => { /* ... */ }); | |
document.addEventListener("keyup", (e) => { /* ... */ }); | |
6. Event listening for dynamically added elements | |
// With jQuery | |
// Handle click events .search-result elements, | |
// even when they're added to the DOM programmatically | |
$(".search-container").on("click", ".search-result", handleClick); | |
// Without jQuery | |
// Create and add an element to the DOM | |
var searchElement = document.createElement("div"); | |
document.querySelector(".search-container").appendChild(searchElement); | |
// Add an event listener to the element | |
searchElement.addEventListener("click", handleClick); | |
7. Triggering and creating events | |
// With jQuery | |
// Trigger myEvent on document and .box | |
$(document).trigger("myEvent"); | |
$(".box").trigger("myEvent"); | |
// Without jQuery | |
// Create and dispatch myEvent | |
document.dispatchEvent(new Event("myEvent")); | |
document.querySelector(".box").dispatchEvent(new Event("myEvent")); | |
8. Styling elements | |
// With jQuery | |
// Select .box and change text color to #000 | |
$(".box").css("color", "#000"); | |
// Without jQuery | |
// Select the first .box and change its text color to #000 | |
document.querySelector(".box").style.color = "#000"; | |
// With jQuery | |
// Pass multiple styles | |
$(".box").css({ | |
"color": "#000", | |
"background-color": "red" | |
}); | |
// Without jQuery | |
// Set color to #000 and background to red | |
var box = document.querySelector(".box"); | |
box.style.color = "#000"; | |
box.style.backgroundColor = "red"; | |
// Set all styles at once (and override any existing styles) | |
box.style.cssText = "color: #000; background-color: red"; | |
9. hide() and show() | |
// With jQuery | |
// Hide and show and element | |
$(".box").hide(); | |
$(".box").show(); | |
// Without jQuery | |
// Hide and show an element by changing "display" to block and none | |
document.querySelector(".box").style.display = "none"; | |
document.querySelector(".box").style.display = "block"; | |
10. Document ready. | |
// With jQuery | |
$(document).ready(function() { | |
/* Do things after DOM has fully loaded */ | |
}); | |
// Without jQuery | |
// Define a convenience method and use it | |
var ready = (callback) => { | |
if (document.readyState != "loading") callback(); | |
else document.addEventListener("DOMContentLoaded", callback); | |
} | |
ready(() => { | |
/* Do things after DOM has fully loaded */ | |
}); | |
11. Working with classes | |
// With jQuery | |
// Add, remove, and the toggle the "focus" class | |
$(".box").addClass("focus"); | |
$(".box").removeClass("focus"); | |
$(".box").toggleClass("focus"); | |
// Without jQuery | |
// Add, remove, and the toggle the "focus" class | |
var box = document.querySelector(".box"); | |
box.classList.add("focus"); | |
box.classList.remove("focus"); | |
box.classList.toggle("focus"); | |
// Add "focus" and "highlighted" classes, and then remove them | |
var box = document.querySelector(".box"); | |
box.classList.add("focus", "highlighted"); | |
box.classList.remove("focus", "highlighted"); | |
// Remove the "focus" class and add "blurred" | |
document.querySelector(".box").classList.replace("focus", "blurred"); | |
12. Checking if an element has a class | |
// With jQuery | |
// Check if .box has a class of "focus", and do something | |
if ($(".box").hasClass("focus")) { | |
// Do something... | |
} | |
// Without jQuery | |
// Check if .box has a class of "focus", and do something | |
if (document.querySelector(".box").classList.contains("focus")) { | |
// Do something... | |
} | |
13. Network requests with .get() or .ajax() | |
// With jQuery | |
$.ajax({ | |
url: "data.json" | |
}).done(function(data) { | |
// ... | |
}).fail(function() { | |
// Handle error | |
}); | |
// Without jQuery | |
fetch("data.json") | |
.then(data => { | |
// Handle data | |
}).catch(error => { | |
// Handle error | |
}); | |
14. Creating elements | |
// Create a div & span | |
$("<div/>"); | |
$("<span/>"); | |
// Create a div and a span | |
document.createElement("div"); | |
document.createElement("span"); | |
var element = document.createElement("div"); | |
element.textContent = "Text" | |
// or create a textNode and append it | |
var text = document.createTextNode("Text"); | |
element.appendChild(text); | |
15. Updating the DOM | |
// With jQuery | |
// Update the text of a .button | |
$(".button").text("New text"); | |
// Read the text of a .button | |
$(".button").text(); // Returns "New text" | |
// Without jQuery | |
// Update the text of a .button | |
document.querySelector(".button").textContent = "New text"; | |
// Read the text of a .button | |
document.querySelector(".button").textContent; // Returns "New text" | |
// Create div element and append it to .container | |
$(".container").append($("<div/>")); | |
// Create a div and append it to .container | |
var element = document.createElement("div"); | |
document.querySelector(".container").appendChild(element); | |
// Create a div | |
var element = document.createElement("div"); | |
// Update its class | |
element.classList.add("box"); | |
// Set its text | |
element.textContent = "Text inside box"; | |
// Append the element to .container | |
document.querySelector(".container").appendChild(element); | |
* Summary | |
Selecting elements with querySelector and querySelectorAll | |
Listening for events with addEventListener | |
Updating CSS and styles through style property | |
Working with classes through the classList property | |
AJAX requests with fetch | |
Triggering events with dispatchEvent | |
Creating elements with createElement | |
Updating text through the textContent property | |
Adding elements to the DOM with appendChild | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment