Manipulando HTML
Utilizando el objeto document
(o window.document
) es posible:
- Obtener o modificar el título del documento.
- Obtener información de los elementos.
- Insertar, eliminar, reemplazar, ocultar y mostrar elementos.
- Agregar y eliminar clases de CSS.
- Manipular el CSS de los elementos directamente.
El título del documento
Para obtener o modificar el título del documento utiliza la propiedad title
del objeto document
:
console.log(document.title);
document.title = "Nuevo título";
Obteniendo elementos
Para obtener un elemento utiliza el método querySelector
que recibe un selector CSS válido y retorna el primer elemento que coincida o null
si no coincide ninguno
// retorna el formulario con id my-form
let form = document.querySelector("form#my-form");
form.tagName; // "form"
form.id; // "my-form"
form.style; // retorna un objeto con los estilos del elemento
form.attributes; // retorna un objeto con los atributos del elemento
Puedes encontrar todos los atributos y métodos de los elementos en este recurso.
Para obtener varios elementos utiliza el método querySelectorAll
que es similar a querySelector
pero retorna todos los elementos que coinciden:
// retorna todos los div del documento
let divs = document.querySelectorAll("div");
for(let div of divs.entries()) {
console.log(div);
}
Insertando elementos
Para insertar elementos en el documento utiliza el método createElement
para crear el elemento y appendChild
para agregarlo. Por ejemplo, asumiendo que tenemos un div en el documento:
let ul = document.createElement("ul");
let div = document.querySelector("div");
div.appendChild(ul);
Para agregar texto puedes utilizar el método createTextNode
, el atributo innerHTML
o el atributo textContent
:
let p = document.createElement("p");
// con createTextNode
let text = document.createTextNode("Hola");
p.appendChild(text);
// con innerHTML
p.innerHTML = "Hola";
// con textContent
p.textContent = "Hola";
Nota: innerHTML
no sólo te permite agregar texto, también puedes agregar HTML, así que se puede ver como otra forma de insertar elementos.
Removiendo elementos
Para eliminar un elemento debes invocar el método removeChild
:
let element = document.querySelector("div");
element.parentNode.removeChild(element);
Agregando y removiendo clases de CSS
Utiliza la propiedad classList
para listar, agregar y eliminar clases de CSS de un elemento.
Asumiendo que tenemos un div
con clases one two three
:
<div class="one two three"></div>
Podemos listar, agregar y eliminar clases de la siguiente forma:
let div = document.querySelector("div");
div.classList; // "one two three"
div.classList.add("four");
div.classList.remove("one");
Otro método útil que podemos utilizar sobre classList
es toggle
que agrega una clase si no la tiene o la remueve de lo contrario:
div.classList.toggle("one"); // agrega "one" si no existe o lo remueve si existe