Mis apuntes de desarrollo web </>

DOM (Document Object Model)

Es una API definida para representar e interactuar con cualquier documento HTML o XML. El DOM es un modelo de documento que se carga en el navegador web y que representa el documento como un árbol de nodos, en donde cada nodo representa una parte del documento (puede tratarse de un elemento, una cadena de texto o un comentario).

Ejemplo DOM
Imagen tomada de: link

Nodos:

Hay varios tipos de nodos, los más utilizados son:

Element node - 1:
Cualquier etiqueta HTML.
Text node -3:
Contenido de la etiqueta.
Comment node -8:
Comentario HTML.

Acceder a elementos del DOM:

Hay varias maneras de acceder a elementos del DOM, algunas de ellas son:

document.getElementById( 'id' ):
Acceder a un elemento a través de su id.
document | element .querySelector( 'selectorCSS' ):
Accede al primer elemento que coincida con el selector CSS. Se puede usar tanto con document (selector hijo del <html>) o con otro elemento especifico.
document | element .querySelectorAll( 'selectorCSS' ):
Accede a todos los elementos que coincidan con el selector CSS, devuelve un nodeList. Se puede usar tanto con document (selector hijo del <html>) o con otro elemento especifico.

Ejemplos:

Ejemplos Acceder elementos del DOM 1 Ejemplos Acceder elementos del DOM 2

Lorem ipsum dolor sit amet consectetur, adipisicing elit. Velit, nostrum provident. Eum earum dolor perferendis, delectus ullam quaerat vero possimus voluptatum nesciunt nemo facere minus temporibus velit debitis quam nobis.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Dolorum sit nulla molestias veniam alias eligendi earum velit est non rem! Atque fuga ullam distinctio cupiditate laboriosam, quae necessitatibus dolor doloribus.

Lorem ipsum dolor sit, amet consectetur adipisicing elit. Eveniet odit laudantium molestias, modi tempora repellendus. Culpa sed harum debitis quos, sit, repellendus nostrum odit ad natus eos blanditiis vitae suscipit?

Lorem, ipsum dolor sit amet consectetur adipisicing elit. Accusamus et eos soluta repudiandae natus sequi asperiores sit quia, libero, voluptas iusto maxime similique distinctio ea velit facere placeat veniam inventore.

Lorem ipsum dolor sit amet, consectetur adipisicing elit. Animi fugit eos omnis est, officiis, corrupti laudantium beatae culpa tenetur veritatis numquam ipsa necessitatibus labore, vero inventore pariatur quo sint rerum.

Lorem ipsum, dolor sit amet consectetur adipisicing elit. Recusandae eos voluptate in, eveniet nulla debitis possimus obcaecati sequi laudantium assumenda! Doloribus officiis veniam dolor commodi impedit facilis quas ullam tempora.

Modificar atributos y clases:

Ejemplos:

Ejemplo modificar atributos y clases

Crear e insertar elementos:

document.createElement( element ):
Crear un elemento.
element.textContent = texto:
Escribir texto en un elemento.
element.innerHTML = código HTML:
Escribir HTML en un elemento.
parent.appendChild( element ):
Añadir un elemento al DOM.
document.createDocumentFragment():
Fragmentos de código.

Ejemplos:

ejemplo crear e insertar elementos

Recorrer elementos:

Padre:

parentElement:
Devuelve el nodo elemento padre

Hijos:

children:
Devuelve todos los nodos elementos hijos.
firstElementChild:
Devueleve el primer nodo elemento hijo.
lastElementChild:
Devueleve el último nodo elemento hijo.
hasChildNodes():
Devueleve true si el nodo tiene hijos y false si no tiene.

Hermanos:

nextElementSibling:
Devuelve el siguiente nodo elemento hermano.
previousElementSibling:
Devuelve el anterior nodo elemento hermano.

Ejemplos:

  • Item 1
  • Item 2
  • Item 3
Ejemplo Recorrer elementos

Insertar, clonar y borrar elementos:

insertBefore( newElement, referenceElement ):
Insertar un elemento antes del elemento de referencia.
parent.insertAdjacentElement( position, element ):
Inserta un elemento en la posición establecida tomando al padre de referencia.
parent.insertAdjacentHTML( position, HTML ):
Inserta código HTML en la posición establecida tomando al padre de referencia.
parent.insertAdjacentText( position, text ):
Inserta texto en la posición establecida tomando al padre de referencia.
positions:
  • beforebegin: Antes de que empiece (hermano anterior).
  • afterbegin: Después de que empiece (primer hijo).
  • beforeend: Antes de que acabe (último hijo).
  • afterend: después de que acabe (hermano siguiente).
parent.replaceChild( newChild, oldChild ):
Reemplaza un elemento hijo por otro.
element.cloneNode( true | false ):
Clona el nodo. Si el argumento es true clona todo el elemento con los hijos, si el argumento es false clona solo el elemento sin hijos.
Ejemplo Insertar elementos Ejemplo Reeemplazar, clonar y eliminar elementos