JavaScript na prática
Macetes do dia-dia.
IIFE
Funções iniciadas imediatamente.
(function () {
"use strict";
})()
Hoisting
console.log(func());
function func() {
// body...
console.log('escopo da função');
}
Acessando o DOM
const $_Dom = document.querySelectorAll('body');
console.log($_Dom);
Função Request
function request() {
const xhttp = new XMLHttpRequest();
}
Acessando propriedade onreadystatechange
xhttp.onreadystatechange = function () {
};
Verificando o status da Requisição
if (this.readyState == 4 && this.status == 200) {
const res = JSON.parse(this.responseText);
}
Tratando a resposta da Requisição
res.map(hero => {
let _ul = document.getElementsByClassName("heroList")[0];
let _li = _ul.childNodes[1];
_li = _li.cloneNode(true);
let _spanNum = _li.getElementsByClassName('numero')[0];
let _spanName = _li.getElementsByClassName('heroName')[0];
_spanNum.innerHTML = hero.id;
_spanName.innerHTML = hero.nome;
_ul.appendChild(_li);
});
Fazendo requisição, definindo cabeçalhos e enviando
xhttp.open("GET", "http://localhost:3000/api/heros", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send();
Script completo
function request() {
const xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
const res = JSON.parse(this.responseText);
//aqui estamos fazendo um map no json retornado e para cada item do JSON eu farei alguma coisa
res.map(hero => {
let _ul = document.getElementsByClassName("heroList")[0];//clonei o meu ul
console.log(_ul);
let _li = _ul.childNodes[1];
_li = _li.cloneNode(true);
let _spanNum = _li.getElementsByClassName('numero')[0];
let _spanName = _li.getElementsByClassName('heroName')[0];
_spanNum.innerHTML = hero.id;
_spanName.innerHTML = hero.nome;
_ul.appendChild(_li);
});
}
};
xhttp.open("GET", "http://localhost:3000/api/heros", true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.send();
}
JavaScript na prática
By Danilo Agostinho
JavaScript na prática
- 523