I'm just a painter who studied computer science.
Selectors "Selectores"
Selectors "Selectores"
Obtener elementos en el DOM "Document Object Model"
querySelectorAll()
Utilizamos la funcion document.querySelectorAll() para encontrar todos los elementos coincidentes en una página. Puede usar cualquier selector CSS válido.
<section class="section" data-section="1"></section>
<section class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
// Get all elements with tag section
let selectAllSections = document.querySelectorAll('section');
// Get all elements with class
let selectAllByClass = document.querySelectorAll('.section');
// Get all elements with data-attribute
let selectAllDataAttr = document.querySelectorAll('[data-section]');
console.dir(selectAllSections); //-> NodeList(3);
console.dir(selectAllByClass); //-> NodeList(3)
console.dir(selectAllDataAttr); //-> NodeList(3)
querySelector()
Utilizamos la funcion document.querySelector() para encontrar el primer elemento coincidente en una página. Puede usar cualquier selector CSS válido.
<section class="section" data-section="1"></section>
<section class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
// Get all elements with tag section
let selectFirstSection = document.querySelector('section');
// Get all elements with data-attribute
let selectDataAttr = document.querySelector('[data-section="2"]');
console.dir(selectFirstSection); //-> section.section
console.dir(selectDataAttr); //-> section.section
Si en el momento de encontrar algun elemento y este no existe en documento, la funcion nos devuelve el valor de nulo. Para esta situacion podemos utilizar condiciones para evitar valores nulos.
getElementById()
Utilizamos la funcion getElementById() para encontrar el elemento coincidente al identificador.
<section class="section" data-section="1"></section>
<section in="section_2" class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
let selectById = document.getElementById('section_2');
console.dir(selectById); //-> section#section_2.section
getElementsByClassName()
Utilizamos la funcion getElementsByClassName() para encontrar todos los elementos coincidente a clase o grupos de clases.
<section class="section" data-section="1"></section>
<section class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
let selectByClass = document.getElementsByClassName('section');
console.dir(selectByClass); //-> HTMLCollection(3)
Importante que esta funcion devuelve una colección de elementos HTML en tiempo real. Si se agrega o elimina algun elemento del DOM después de definir dentro de variable, la coleccion se actualiza automáticamente para reflejar el DOM actual.
getElementsByTagName()
Utilizamos la funcion getElementsByTagName() para encontrar todos los elementos coincidente a etiqueta HTML.
<section class="section" data-section="1"></section>
<section class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
let selectByTag = document.getElementsByTagName('section');
console.dir(selectByTag); //-> HTMLCollection(3)
matches()
Utilizamos la funcion getElementsByTagName() para verificar si un elemento sería seleccionado por un selector particular o un conjunto de selectores. Devuelve verdadero si el elemento es una coincidencia o existe en el DOM, y falso cuando no.
<section class="section" data-section="1"></section>
<section class="section" data-section="2"></section>
<section class="section" data-section="3"></section>
let selectById = document.querySelector('#section_2');
if(selectById.matches('.section')) {
console.log('It matches!');
}
else {
console.log('Not a match!');
}
//-> It matches!