Skip to content

Instantly share code, notes, and snippets.

@ocariocawebdesign
Last active November 11, 2020 19:04
Show Gist options
  • Save ocariocawebdesign/29dcd7f3ed7c04917aa5ccb837b9223d to your computer and use it in GitHub Desktop.
Save ocariocawebdesign/29dcd7f3ed7c04917aa5ccb837b9223d to your computer and use it in GitHub Desktop.
Estudo de funções construtoras
//Estudo de Objetos
//Função contrutora pegando li e ul
function Dom(seletor) {
this.element = function () {
return document.querySelector(seletor);
};
this.ativar = function () {
this.element().classList.add("ativar");
};
}
const li = new Dom("li");
console.log(li);
li.ativar();
const ul = new Dom("ul");
ul.ativar();
//Outra forma
function ClassLista2(seletor) {
const elementList = document.querySelectorAll(seletor);
this.elements = elementList;
//Função adiciona classe
this.addClass = function (classe) {
elementList.forEach((element) => {
element.classList.add(classe);
});
}
//Função remove classe
this.removeClass = function(classe){
elementList.forEach((element) => {
element.classList.add(classe);
});
}
}
const li2 = new ClassLista2("li");
li2.addClass("ativaSempre");
//Aqui criei uma função contrutora
//para pegar um elemento que seja Array (No caso "li" que retorna uma nodeList)
function ClassLista(seletor) {
//adiciona classe
this.adiciona = function (classe) {
//Coloquei o argumento classe
const element = document.querySelectorAll(seletor);
element.forEach((item) => {
item.classList.add(classe); // Aqui também com parâmetro classe
});
};
//Remove classe
this.remove = function (classe) {
//Coloquei o argumento classe
const element = document.querySelectorAll(seletor);
element.forEach((item) => {
item.classList.remove(classe); // Aqui também com parâmetro classe
});
};
}
const li = new ClassLista("li");
li.adiciona("teste");
li.remove("teste");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment