HYEJIN's
Vanilla JS 순수 바닐라 - jQuery를 Javascript로 ! 본문
바닐라 자바스크립트 Vanilla JS?
바닐라 자바스크립트(Vanilla JS)란 프레임워크 또는
라이브러리가 적용되지 않은 순수한 자바스크립트를 뜻한다.
1. 선택자
<div id="app"></div>
<div class="container"></div>
// jQuery
$("#app");
$(".container");
// Jacascript
document.getElementById("app");
document.querySelector("#app");
document.getElementsByClassName("container");
document.querySelector(".container");
document.querySelectorAll(".container");
jQuery.siblings()
: 형제 요소 중 지정한 선택자 모두 선택.next()
: 다음 형제 요소 모두 선택.nextAll()
: 다음 형제 요소 모두 선택.nextUntil()
: 형제 요소 중 지정한 선택자에 해당하는 요소 바로 이전까지의 요소 모두 선택.prev()
: 이전에 위치한 형제 요소 선택.prevAll()
: 이전에 위치한 형제 요소 모두 선택.prevUntil()
: 형제 요소 중 지정한 선택자에 해당하는 요소 바로 다음까지의 요소 모두 선택
JavascriptparentNode
: 부모 노드childNodes
: 자식 노드 리스트firstChild
: 첫 번째 자식 노드lastChild
: 마지막 자식 노드nextSibling
: 다음 형제 노드previousSibling
: 이전 형제 노드
2. data 속성 값
<div data-user-name="Vanilla">Hello</div>
// jQuery
$("div").data("user-name");
// Javascript
document.querySelector("div").dataset.userName;
3. Event
// jQuery
$(function() {
});
// Javascript
document.addEventListener("DOMContentLoaded", () => {
});
// jQuery
$(".btn").off().on("click", e => {
});
// Javascript
document.querySelector(".btn").addEventListener("click", e => {
});
// 다른곳에서 이벤트 방출(emit) - 똑같이 click();
$(".btn").click();
document.querySelector(".btn").click();
4. 배열
// jQuery
$("li").each( (idx, item) => {
});
// Javascript
Array.from(document.querySelectorAll("li")).forEach( (inx, item) => {
});
5. 비동기 요청
// jQuery
$.ajax({
url: "./test.jsp",
type: "GET",
cache: false,
dataType: "json",
data: "",
success: function(data){
},
error: function (request, status, error){
}
});
// Javascript
const req = new XMLHttpRequest();
req.open("GET", "/resource", true);
req.onreadystatechange = () => {
if (req.readyState == 4) {
if (req.status == 200 || req.status == 201){
console.log('success');
}
else {
console.log('fail');
}
}
}
req.send(null);
// req.setRequestHeader("Content-Type", "application/json");
// req.send(JSON.stringify(jsonData));
'JavaScript' 카테고리의 다른 글
Node로의 접근 완벽 정리! (parentNode,nextSibling...nodeType) (1) | 2019.03.20 |
---|---|
ES6 Template처리 및 Taggd Template literals 알아보기 (0) | 2019.02.26 |
ES6 Map & WeakMap / 가비지 컬렉터 알아보기 (0) | 2019.02.25 |
ES6 Set & WeakSet 알아보기 (0) | 2019.02.25 |
ES6 Destructuring Array, Object, JSON, event 알아보기 (0) | 2019.02.25 |
Comments