CursosEmpresasBlogLiveConfPrecios

Crear y agregar

Clase 7 de 29 • Curso de Manipulación del DOM

Clase anteriorSiguiente clase

Contenido del curso

DOM y Web API
  • 1
    Y entonces nació internet...

    Y entonces nació internet...

    02:23
  • 2

    Accede a la versión más actualizada de este contenido

    00:14
  • 3
    ¿Qué es el DOM?

    ¿Qué es el DOM?

    02:39
  • 4
    Web APIs modernas

    Web APIs modernas

    03:17
Operaciones básicas
  • 5
    Leer nodos

    Leer nodos

    09:31
  • 6
    NodeLists vs Array

    NodeLists vs Array

    03:46
  • 7
    Crear y agregar

    Crear y agregar

    15:47
  • 8
    Otras formas de agregar

    Otras formas de agregar

    06:55
  • 9
    Atributos y propiedades

    Atributos y propiedades

    05:12
  • 10
    Eliminar nodos

    Eliminar nodos

    09:31
  • 11
    Operaciones en lote

    Operaciones en lote

    06:52
Workshop 1: Fetch
  • 12
    Presentación del proyecto

    Presentación del proyecto

    01:10
  • 13
    Descargando información y creando nodos

    Descargando información y creando nodos

    18:36
  • 14
    Enriqueciendo la información

    Enriqueciendo la información

    10:53
  • 15
    Usando la API de internacionalización del browser

    Usando la API de internacionalización del browser

    12:14
  • 16
    Comparte el resultado

    Comparte el resultado

    02:18
Eventos
  • 17
    Reaccionar a lo que sucede en el DOM

    Reaccionar a lo que sucede en el DOM

    13:58
  • 18
    Event propagation

    Event propagation

    12:08
  • 19
    Event delegation

    Event delegation

    05:32
Workshop 2: Lazy loading
  • 20
    Presentación del proyecto

    Presentación del proyecto

    03:34
  • 21
    Nuestro propio plugin Lazy Loading

    Nuestro propio plugin Lazy Loading

    08:32
  • 22
    Creando las imagenes con JavaScript

    Creando las imagenes con JavaScript

    17:33
  • 23
    Intersection Observer

    Intersection Observer

    14:21
  • 24
    Aplicando Lazy loading

    Aplicando Lazy loading

    13:07
  • 25
    Comparte el resultado

    Comparte el resultado

    03:17
Workshop 3
  • 26
    Proyectos propuestos

    Proyectos propuestos

    04:17
Librerías relacionadas
  • 27
    ¿Y jQuery?

    ¿Y jQuery?

    03:41
  • 28
    ¿Y JSX?

    ¿Y JSX?

    09:40
Conclusiones
  • 29
    Conclusiones

    Conclusiones

    01:56
    Carlos Eduardo Gomez García

    Carlos Eduardo Gomez García

    teacher•
    hace 5 años

    Al decir "crear nodos" nos referimos a crear elementos dentro de nuestro DOM. Para ello podemos hacer uso de: .

    • createElement: Para crear una etiqueta HTML:
    // Solo se ha creado, aún no se agrega al DOM const etiquetaH1 = document.createElement("h1")
    • createTextNode: Para crear un texto:
    // Solo se ha creado, aún no se agrega al DOM const texto = document.createTextNode("¡Hola, Mundo!")

    Como solo creamos, necesitamos formas de agregarlos al DOM, para ello, JavaScript nos provee de estas formas: .

    • parentElement.appendChild(): Agrega un hijo al final algún elemento
    // Obtengo el elemento padre const parentElement = document.querySelector("selector") // Creo el nodo a insertar const h3 = document.createElement("h3") // Creo el texto del nodo const texto = document.createTextNode("Hola!") // Inserto el texto al nodo h3.appendChild(h3) // Inserto el nodo al padre parentElement.appendChild(h3)
    • parentElement.append(): Es la evolución de appendChild, podemos agregar más de un nodo, puedes agregar texto y... no es soportado por Internet Explorer ¬¬! . Un polyfill es una adaptación del código para dar soporte a navegadores que no lo soportan, aquí está el polyfill de append: https://developer.mozilla.org/es/docs/Web/API/ParentNode/append#polyfill
    // Obtengo el elemento padre const parentElement = document.querySelector("selector") // Agrego al elemento padre parentElement.append("agrego un texto", document.createElement("div"))
    • parentElement.insertBefore(): Inserta nodos antes del elemento que le pasemos como referencia, este nodo de referencia tiene que ser un hijo DIRECTO del padre
    // Obtengo el elemento padre const parentElement = document.querySelector("selector") // Creo un elemento const titulo = document.createElement("h1") // Obtengo la referencia del elemento del que quiero insertar antes: const referencia = document.querySelector("selector") // ¡Lo insertamos! parentElement.insertBefore(titulo, referencia)
    • parentElement.insertAdjacentElement(): Inserta nodos según las opciones que le pasemos:
      1. beforebegin: Lo inserta antes del nodo
      2. afterbegin: Lo inserta despues del nodo
      3. beforeend: Lo inserta antes de donde finaliza el nodo
      4. afterend: Lo inserta después de donde finaliza el nodo
    // Obtengo el elemento padre const parentElement = document.querySelector("selector") // Creo un elemento const nodo = document.createElement("span") parentElement.insertAdjacentElement("beforebegin", nodo)
      Omar García Betanzos

      Omar García Betanzos

      student•
      hace 5 años

      Buenísimos tus apuntes. Muchas gracias!

      Andrés Felipe Lopez gomez

      Andrés Felipe Lopez gomez

      student•
      hace 5 años

      Muy buen resumen

    Fernando Quinteros Gutierrez

    Fernando Quinteros Gutierrez

    student•
    hace 5 años

    📢 Crear y agregar Nodos

    Apuntes

    • Podemos crear nodos de dos formas

      • Crear elementos
      document.createElement("Elemento")
      • Podemos crear cualquier elemento que tenga su respectiva etiqueta

      • El hecho de crear un elemento no significa que se agregue al DOM, estará guardado en memoria

      • Crear texto

        document.createTextNode("Texto")
        • Solo sera un simple texto creado para agregarlo en algún momento a un elemento

    Agregar Nodos

    AppendChild

    • Nos agrega un nodo al final del elemento en que apliquemos la operación
    • Es un método que existe desde hace mucho tiempo, tiene algunas limitaciones
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0023.jpg
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0024.jpg

    Append

    • Es la evolución de appendChild
    • Puedes agregar más de un nodo
    • Puedes agregar texto sin necesidad de usar createTextNode
    • IE 11: No soportado
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0026.jpg

    InsertBefore

    • Nos permite poner un nodo antes de alguna referencia que tengamos
    • Este método recibe dos parámetros
      • Nuevo Nodo
      • Referencia ⇒ Hijo directo del nodo base
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0028.jpg

    InsertAdjacentElement

    • Es un método complejo pero el cual cuenta con una basta flexibilidad
    • Nos permite especificar donde poner el nuevo nodo con una lista de posiciones predefinidas
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0035.jpg
    slides-curso-de-manipulacion-del-dom_526610a4-4bf9-4457-acc4-8c10126f02fa_page-0036.jpg

    RESUMEN: Para poder crear elementos y texto de una forma imperativa, es decir mediante el JS podemos usar createElement y createTextNode. Para agregar al DOM son otros métodos como appendChild para poner al final de un elemento, append es similar solo que nos permite agregar listas y textos (sin necesidad de usar textos), insertBefore para poner antes de alguna referencia e ### insertAdjacentElement

      José Luis Encastin Flores

      José Luis Encastin Flores

      student•
      hace 4 años

      Me encantó tu resúmen. Me ayudó a sintetizar mejor los conocimientos de la clase. ¡Saludos!

    David Granados

    David Granados

    student•
    hace 5 años

    Una forma rápida de ubicar selectores si usas chrome es la siguiente:

    chrome_copy_js_path.png

    Eso te copiará al portapapeles algo como esto:

    chrome_paste_js_selector.png

    Aunque no lo recomiendo para usarlo dentro del código final de tu app, si es un buen atajo para hacer pruebas en el navegador.

      Alejandro Campuzano

      Alejandro Campuzano

      student•
      hace 4 años

      wow está super ese truco me hubiera salvado de muchas jaja

    Andrés D Amelio

    Andrés D Amelio

    student•
    hace 5 años

    Resumen de la clase

    Crear nodos

    • document.createElement

      Crea un elemento HTML especificado por su tagName. Este elemento es solo creado, es decir, se crea en memoria, normalmente es asignado en una variable, pero no pertenece al DOM, no forma parte de los nodos hasta que lo indiquemos. Supongamos que queremos crear un elemento div, lo hacemos de la siguiente manera

      document.createElement("div");
    • document.createTextNode

      Este método nos permite crear un nodo de texto, generalmente es usado para escapar caracteres HTML. Recibe una cadena de texto que contiene los datos a poner en el nodo. Veamos un ejemplo,

      document.createTextNode("Este es un nodo de texto");
    • document.createAttribute

      Este método nos permite crear un nodo de tipo atributo. El DOM no impone que tipo de atributos pueden ser agregados a un particular elemento. Funciona de igual forma a los demás, solo crea un nodo, que puede o no en el DOM, veamos un ejemplo,

      document.createAttribute("href");

    Agregar Nodos

    • parentElement.appendChild

      Este método nos permite agregar un elemento (Nodo) al final de la lista de hijos de un elemento padre previamente especificado, es decir, agrega un elemento dentro de un padre, y este es colocado al final. Es importante resaltar que si el Nodo que se esta insertando existe en el documento actual, es una referencia, este sera removido del padre actual y sera puesto dentro del padre que se esta especificando. por otro lado este método retorna o devuelve el elemento Nodo insertado. Supongamos que tenemos una lista, y queremos insertar un nuevo elemento con el texto "Item 3", lo haremos de la siguiente manera

      const list = document.querySelector("#list"); const item = document.createElement("li"); const text = document.createTextNode("Item 1"); // Insertamos el texto dentro del item item.appendChild(text); // Insertando el item en la lista container.appendChild(item);
    • parentElement.append

      Este método es una evolución de appendChild, donde podemos agregar más de un nodo, cosa que no podemos hacer en el método anterior, podemos agregar texto. Este también agrega los nodos al final de los hijos del elemento padre especificado, y no retorna ningún elemento. No tiene soporte adecuado para IE 11. Veamos un ejemplo, donde insertaremos un texto en un elemento li, y ademas agregaremos un nuevo hijo, simulando un menú de varios niveles.

      const container = document.querySelector("ul.container"); const item = document.createElement("li"); const subItem = document.createElement("ul"); // Agregamos el texto de item, adicional insertamos la nueva lista item.append("Categorias", subItem); // Agremos el item al menu container.append(item);
    • parentElement.insertBefore

      Este método permite insertar o agregar un nodo, antes del nodo que pasemos de referencia, y que pertenece al padre del que estamos accediendo a dicho método. Si insertamos un Nodo que ya esta en nuestro DOM el método lo cambia de lugar, es decir, lo quita de donde se encuentra actualmente y lo inserta en el sitio al que estamos haciendo referencia. Este método recibe dos argumentos, el primero de ellos es el Nodo que queremos insertar, y el segundo es el Nodo de referencia. Si el segundo argumento es null entonces el nodo se insertar al final de la lista de hijos del padre, es decir, actúa como el appendChild. Veamos un ejemplo,

      const parent = document.querySelector(".container"); const item = document.querySelector(".contact"); const newItem = document.createElement("li"); const text = document.createTextNode("Blog"); newItem.append(text); /* Insertamos el nuevo elemento al padre, lo insertaremos antes del elemento con clase contact */ parent.insertBefore(newItem, item);
    • parentElement.insertAdjacentElement

      Este método permite insertar un nodo de acuerdo a una posición especificada, y lo ubica con respecto al elemento sobre el cual es llamado. Es uno de los más complicados de usar, pero el que más opciones de inserción nos proporciona. Este método recibe 2 argumentos, el primero de ellos donde se insertará el nuevo nodo, para esto contamos con cuatro opciones, las cuales son:

      • beforebegin: Inserta el elemento antes de la referencia. Es decir, antes del nodo que llama al método en cuestión.
      • afterbegin: Insertar el nodo dentro del elemento referencia, pero ademas de esto lo inserta antes de su primer hijo.
      • beforeend: Al igual que la opción anterior lo agrega dentro del elemento referencia, con la particularidad de que ahora lo inserta después de su ultimo hijo.
      • afterend: Inserta el elemento después del nodo referencia, es decir, despues del nodo que llama al método.
      Edgar Lopez Arroyo

      Edgar Lopez Arroyo

      student•
      hace 5 años

      Gran resumen!! 👍

      Jenniffer Paola Orjuela

      Jenniffer Paola Orjuela

      student•
      hace 4 años

      Excelente resumen, gracias!!

    Jimmy Buriticá Londoño

    Jimmy Buriticá Londoño

    student•
    hace 5 años
    5-InsertAdjacentElement.png
    Alejandro Mejia Escobar

    Alejandro Mejia Escobar

    student•
    hace 4 años

    Un truco que aprendí en el Curso de Debugging con Chrome DevTools: Chrome te ayuda a tener el querySelector de cualquier elemento, sólo tienes que dar click derecho > Copy > Copy JS path

    Captura.PNG

    Como resultado te generará un código como este

    document.querySelector("body > div > main > div.py-5.text-center > h2")
      Diego Hernandez

      Diego Hernandez

      student•
      hace 3 años

      Genial tu aporte

    Omar García Betanzos

    Omar García Betanzos

    student•
    hace 5 años
    Screenshot_6.jpg
    Screenshot_7.jpg
    Irving Caamal

    Irving Caamal

    student•
    hace 3 años

    Hola si estás viendo esto IE11 ya esta muerto :D VIVAAAAA!!!

    Giselle Desiree Boyer Jimenez

    Giselle Desiree Boyer Jimenez

    student•
    hace 5 años

    InsertBefore y el insertAdjacentElement( 'beforebegin',ref ) tienen el mismo funcionamiento?

      Jonathan 🦑 Alvarez

      Jonathan 🦑 Alvarez

      teacher•
      hace 5 años

      Es correcto, dan el mismo resultado al final :)

    Jhaider Jordan

    Jhaider Jordan

    student•
    hace 5 años

    COLOR NEGRO ES MI REFERENCIA

    referencia.insertAdjacentElement("beforebegin",nodo)
    1.png
    referencia.insertAdjacentElement("afterend",nodo)
    2.png
    referencia.insertAdjacentElement("beforeend",nodo)
    3.png
    referencia.insertAdjacentElement("afterbegin",nodo)
    4.png
      Arturo Malgor

      Arturo Malgor

      student•
      hace 3 años

      Me pareció que este aporte se merece unos 👏👍🙏🎊🎉🪄

    David Daniel Castillo Nava

    David Daniel Castillo Nava

    student•
    hace 5 años

    Crear y Agregar Nodos:

    Recordemos que esto es crear y asignar a variables no esta en el DOM

    const element = document.createElement("Cualquier tipo de etiqueta html"); const text = document.createTextNode("Texto que queramos crear");

    Para poder agregar nodos tendremos varias formas de hacerlo

    const element = document.createElement("Cualquier tipo de etiqueta html"); element.innerText = "Agregamos este texto"; // innerText te permite agregar texto a elementos del DOM const element2 = document.createElement("Cualquier tipo de etiqueta html"); element2.innerText = "Agregamos este texto otro texto"; const parentElement = document.getElementById("padre"); /* appendChild: Agrega el elemento al final de la lista de nodos del padre. Parametro(Nodo) */ parentElement.appendChild(element); /* append: Se le pasa un Nodo por parámetro y agrega el elemento al final de la lista de nodos del padre. - Puedes agregar mas de un nodo. - Puedes agregar texto - No lo soporta IE:11 pero en serio internet explorer hasta cuando T.T Parámetros(textos, Nodos, ...) Toma en cuenta que append no te permitirá agregar repetida veces el mismo nodo, intenta agregando el element2 y luego volver a intentar con el element para que veas que lo que pasara es que lo cambiara de lugar. Por que lo que hará es retira el nodo y re asignarlo en la ultima posición. */ parentElement.append(element2); /* insertBefore: Este permite agregar como su nombre lo indica es un nodo antes de!! Parametros: (nodo-que-agregaremos, referencia-de-elemento) Tomar encuentra que la referencia debe ser hijo directo del nodo base para ejemplo a seguir el element debe ser hijo directo del parentElement para poder agregar el element2 antes del element */ parentElement.insertBefore(element2, element); /* insertAdjacentElement: Este permite agregar nodos antes de comenzar la etiqueta, justo después de comenzar la etiqueta, antes de finalizar la etiqueta y luego de finalizar la etiqueta Parametros: (ubicación: ("beforebegin", "afterbegin", "beforeend", "afterend"), nuevo_nodo) */ parentElement.insertAdjacentElement("beforebegin", element); parentElement.insertAdjacentElement("afterbegin", element); parentElement.insertAdjacentElement("beforeend", element); parentElement.insertAdjacentElement("afterend", element);

    Hoy en día existen varias formas de agregar elementos al DOM una de las que me gusta usar a mi es usando los literals strings.

    // Agregando elementos con Literals Strings. /*Prueba de esta forma*/ const parentElement = document.getElementById("element"); const elementString = `<div>Soy un div</div>`; /*Esta primera forma asignamos al parentElement que su contenido HTML será igual a elementString*/ parentElement.innerHTML = elementString /*En esta segunda forma asignamos al parentElement que su contenido HTML será igual al contenido HTML que este ya tiene mas el contenido que le agregamos con elementString imaginate esto como una concatenación de strings */ parentElement.innerHTML += elementString

    Espero te guste mi resumen!!

    Christian Latorre

    Christian Latorre

    student•
    hace 5 años

    necesitaba este curso :)

    Giselle Desiree Boyer Jimenez

    Giselle Desiree Boyer Jimenez

    student•
    hace 5 años

    El document.createTextContent que el mencionó al inicio hace lo mismo que document.createTextNode ??

      Jonathan 🦑 Alvarez

      Jonathan 🦑 Alvarez

      teacher•
      hace 5 años

      Hola @giselleB, buen ojo!

      El correcto es document.createTextNode

      textContent existe pero se usa principalmente para leer el texto que tiene un nodo.

      e.j.:

      const texto = document.querySelector(h1).textContent

      Saludo

      Giselle Desiree Boyer Jimenez

      Giselle Desiree Boyer Jimenez

      student•
      hace 5 años

      Mil gracias por la aclaratoria @jonalvarezz

    Andres Felipe Pinchao Ramirez

    Andres Felipe Pinchao Ramirez

    student•
    hace 5 años
    /* Crear Nodos Poremos pasarle como argumento el elmento o texto que queremos crear y web API nos devolvera el elemento creado Con que creemos un elemento no significa que este necesariamente se agregue al DOM */ document.createElement // Crear etiqueta HTML const etiquetaH1 = document.createElement("h1"); document.createTextNode // Para crear un texto const texto = document.createTextNode("Hola Mundo"); // Agregar Los Nodos Javascript nos provee estas formas: parentElement.appendChild() parentElement.append() parentElement.insertBefore() parentElement.insertAdjacentElement() //Ejemplo con .appendChild Agrega un elemento hijo al final de este //primero leemos el elemento que queremos utilizar const container = document.querySelector('div py5 text-center'); //creamos el nodo que vamos a insertar const h3 = document.createElement('h3') // luego le decimos al elemento padre que vamos a agregar un elemento container.appendChild(h3) // agregaremos texto a nuestro elemento h3 const texto = document.createTextNode('holita'); h3.appendChild(texto) /* node.append Es la evolucion de appendChild -> Puedes agregar más de un nodo, podemos pasar muchos nodos y los agregara al final. -> Puedes agregar texto -> No es soporta por internet explorer */ container.append('hola 2', document.createElement('div')) /* parentElement.insertBefore(): Inserta nodos antes del elemento que le pasemos como referencia, este nodo de referencia tiene que ser un hijo DIRECTO del padre La clave para todos los metodos que empiezan con insert es tener en cuenta la referencia, en insertBefore la referencia va despues de el nodo que queremos agregar. El nodo de referencia tiene que ser hijo directo del nodo base */ // Obtengo el elemento padre const parentElement = document.querySelector("selector") // Creo un elemento const titulo = document.createElement("h1") // Obtengo la referencia del elemento del que quiero insertar antes: const referencia = document.querySelector("h2") // ¡Lo insertamos! parentElement.insertBefore(titulo, referencia) /* parentElement.insertAdjacentElement() Inserta un nodo segun las opciones que le pasemos al metodo beforebegin -> Lo inserta antes del nodo afterbegin -> Lo inserta despues del nodo beforeend -> Lo inserta antes de donde finaliza el nodo afterend -> Lo inserta después de donde finaliza el nodo */ //obtengo la referencia const referencia = document.querySelector('h2') // creo el elemento const nodo = document.createElement('span') /*insertamos el nodo utilizando nuestro metodo el cual recibe por parametro la opcion de donde lo queremos colocar y luego le indicamos el elemento que vamos a insertar */ container.insertAdjacentElement('beforebegin', nodo);```
    Usuario anónimo

    Usuario anónimo

    user•
    hace 4 años

    La MDN nos da esta guía para que podamos ir practicando:

    • 'beforeBegin': Antes del elementoObjetivo.
    • 'afterBegin': Dentro del elementoObjetivo, antes de su primer hijo.
    • 'beforeEnd': Dentro del elementoObjetivo, después de su último hijo.
    • 'afterEnd': Después del elementoObjetivo.
    <!-- beforeBegin --> <p> <!-- afterBegin --> foo <!-- beforeEnd --> </p> <!-- afterEnd -->

    Nota: Las posiciones beforeBegin y afterEnd sólo funcionan si el nodo está en un árbol y tiene un padre.

    Sebastian Gonzalez

    Sebastian Gonzalez

    student•
    hace 5 años

    Los nodos en el dom son los elementos que creamos dentro de otro elemento, <div> <h2>Nodo</> </div>, en este ejemplo el h1 seria un nodo, su padre seria el div, pero si tomamos toda la estructura de html el nodo principal de una pagina web es la etiqueta <html>. de aqui todo elemento que este dentro de ella es un nodo padre (porque puede tener elementos dentro de el) y un “nodo hijo”.

    Al trabajar con JS en la manipulación del DOM, nos encontraremos que tenemos que crear un elemento o un texto en cierta ocación. Aqui entran los metodos, document.createElement y document.createTextNode.

    Estos metodos no nos agrega el elemento al documento, solo crea un espacio de memoria para luego poderlos agregar a un nodo “elemento” existente en nuestro dom. Ejemplo: .

    // En nuestro DOM tenemos un div que tiene un id = container, dentro de el vamos a agregar un parrafo que diga Hello Platzi // Primero buscamos y alojamos en memoria ese div const parent = document.querySelector('#container'); console.log(parent); //Output: <div id="container"></div> // Creamos nuestro parrafo y nuestro texto const p = document.createElement('p); const text = document.createTextNode('Hello Platzi'); //Agregamos el texto al parrado con el metodo append p.appendChild(text); // Output: <p>Hello Platzi</p> // Y ahora agregamos ese parrafo a nuestro div parent.appendChild(p); /* Output: <div id="container"> <p>Hello Platzi</p> </div> */

    “ Recordar que el appendChild siempre nos agrega el elemento al final “

    Metodos para agregar Elementos => .

    • El metodo appendChild() nos agrega un elemento al final del nodo padre. .

    • El metodo append() es nuevo, es una "evolución" de appendChild ya que nos permite agregar mas de 1 elemento, pero no es soportado por Internet explorer 🤔

      • Para poder usarlo en Internet Explorer tenemos que usar appendChild, o un polyfill, en pocas palabras lo que hace es afaptar el codigo para dar soporte a otros navegadores.
    • insertBefore() nos agrega un nodo despues de una referencia, este metodo recibe 2 parametros:

      1. Es el elemento que queremos pasar.
      2. Es la referencia, es decir, es un elemento que ya esta en el nodo (tiene que ser un hijo directo), pero va a ser el que quede antes del que vamos a insertar.
    • insertAdjacentElement() es un poco mas complejo, primero debemos de tener nuestra referencia creada ya que con ella vamos a acceder a este metodo, luego este metodo recibe 2 parametros:

      1. Es una lista de opciones las cuales es como queremos insertar nuestro nodo, estas son:
        • beforebegin => nos agrega el elemento que queremos antes de la referencia
        • afterbegin => lo agrega despues de la referencia
        • beforeend => lo agrega dentro de la referencia pero al final
        • afterend => lo agrega dentro de la referencia pero al inicio
    Carlos Esteban León Pinilla

    Carlos Esteban León Pinilla

    student•
    hace 5 años

    Este es el comportamiento del insertAdjacentElment, la referencia es un h4 de color azul.

    • Elemento base

      1.png

    • Usando before begin

      2.png

    • Usando after begin - es similar a un insert before.

      afterbegin.png

    • Usando before end - es similar a un append child

      beforeend.png

    • Por último usando after end

      afterend.png

    Jose Tellez

    Jose Tellez

    student•
    hace 3 años

    Y por qué no se usa innerHTML o innerText?

      Jose Tellez

      Jose Tellez

      student•
      hace 3 años

      Esta es la respuesta que me dio chatGPT . La principal ventaja de utilizar métodos como appendChild en lugar de innerHTML es la mejor rendimiento. Cuando se usa innerHTML, el navegador debe analizar todo el HTML como una cadena, lo que puede ser costoso en términos de rendimiento si se está trabajando con un gran conjunto de datos. Además, al utilizar appendChild, puedes agregar elementos uno por uno, lo que te permite tener un mayor control sobre el orden y la estructura de tus elementos. . Otra ventaja es la seguridad, al usar innerHTML estás expuesto a ataques de inyección de código, ya que estas ingresando un string con codigo html, mientras que con appendchild estas agregando elementos de forma segura y no estas expuesto a inyecciones. . En resumen, si estás trabajando con un gran conjunto de datos o necesitas tener un gran control sobre la estructura de tus elementos, es recomendable usar métodos como appendChild en lugar de innerHTML.

    Joseph Perales Retamozo

    Joseph Perales Retamozo

    student•
    hace 4 años

    ¿En pleno 2022 ya no nos preocuparemos por IE no?

      Nilson Diaz

      Nilson Diaz

      student•
      hace 4 años

      Hey ! No , de hecho IE ya esta practicamente "muerto", Microsoft tambien ha anunciado que en poco tiempo retirara este navegador , y librerias como React en su ultima version (18) ha dejado de ser compatible con este navegador

    Joel alexander

    Joel alexander

    student•
    hace 5 años

    Que pasaria si creo el nodo pero nunca lo agregon al DOM principal???

      Alejandro Dotor

      Alejandro Dotor

      student•
      hace 5 años

      No va a pasar nada con tu web, se quedara en la memoria de JavaScript, hasta que sea utilizado. 🙋🏻‍♂️

      Carlos Eduardo Gomez García

      Carlos Eduardo Gomez García

      teacher•
      hace 5 años

      Nada, tu nodo moriría cuando JavaScript se termine de ejecutar :D

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads