{"id":833,"date":"2024-07-31T07:39:35","date_gmt":"2024-07-31T05:39:35","guid":{"rendered":"https:\/\/blog.sutilweb.eu\/?page_id=833"},"modified":"2024-07-31T07:39:35","modified_gmt":"2024-07-31T05:39:35","slug":"011-dom-modificando-elementos-old-style","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/javascript\/javascript-practico\/13-dom-document-object-model\/011-dom-modificando-elementos-old-style\/","title":{"rendered":"011. DOM: Modificando Elementos (Old Style)"},"content":{"rendered":"\n<p>En los cap\u00edtulos anteriores hemos trabajado con la <strong>manipulaci\u00f3n del DOM<\/strong>, como poder crear elementos de manera din\u00e1mica, vimos el m\u00e9todo <strong><em>createElement()<\/em><\/strong>, los <strong>fragmentos<\/strong>, los <strong>templates<\/strong>.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Hasta ahora s\u00f3lo hemos visto un <strong>m\u00e9todo<\/strong> para poder agregar elementos din\u00e1micos, que ha sido el m\u00e9todo <strong><em>appenChild()<\/em><\/strong>, que agrega el elemento al final del <strong>selector objetivo<\/strong>. Sin embargo existen otros <strong>m\u00e9todos<\/strong> que permiten reemplazar o insertar al inicio, o insertarlo en una posici\u00f3n en particular, para ello vamos a hacer uso de las propiedades del <strong>DOM Traversing<\/strong> para poder tener esa interacci\u00f3n.<\/p>\n\n\n\n<p>En este cap\u00edtulo veremos los m\u00e9todos antiguos, los que siempre han existido, y en el siguiente cap\u00edtulo veremos lo que se denomina el <strong>cool style<\/strong> o las nuevas formas de hacerlo, de hecho, si conocemos <strong>jQuery<\/strong>, van a recordar a la sintaxis del mismo.<\/p>\n\n\n\n<p>Adem\u00e1s del m\u00e9todo <strong><em>appenChild()<\/em><\/strong> existen los siguientes m\u00e9todos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><em>replaceChild(\u00abnuevo elemento\u00bb,\u00bbviejo elemento\u00bb)<\/em><\/strong>: reemplaza nuevo elemento por viejo elemento.<\/li>\n\n\n\n<li><strong><em>insertBefore(\u00abnuevo elemento\u00bb, \u00abviejo elemento\u00bb)<\/em><\/strong>: inserta el nuevo elemento antes del elemento que le pasemos como referencia (viejo elemento).<\/li>\n\n\n\n<li><strong><em>removeChild(\u00abelemento\u00bb)<\/em><\/strong>: elimina el elemento que le pasemos como par\u00e1metro.<\/li>\n\n\n\n<li><strong><em>cloneNode(true \/ false)<\/em><\/strong>: clona el o los elementos a los que haga referencia.<\/li>\n<\/ul>\n\n\n\n<p>Veamos un ejm para comprender la sintaxis de estos m\u00e9todos<\/p>\n\n\n\n<p><strong>Ejm<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">&lt;!DOCTYPE html&gt;\n&lt;html lang=\"en\"&gt;\n&lt;head&gt;\n&lt;meta charset=\"UTF-8\"&gt;\n&lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"&gt;\n&lt;title&gt;Document&lt;\/title&gt;\n&lt;style&gt;\n:root {\n--yellow-color: #f7df1e;\n--dark-color: #222;\n}\n\n.cards {\nborder: thin solid var(--dark-color);\npadding: 1rem;\n}\n\n.card {\ndisplay: inline-block;\nbackground-color: var(--dark-color);\ncolor: var(--yellow-color)\n}\n\n.card figcaption {\npadding: 1rem;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n}\n\n.rotate-45 {\ntransform: rotate(45deg);\n}\n\nimg {\nwidth: 250px;\nheight: 300px;\n}\n&lt;\/style&gt;\n&lt;\/head&gt;\n&lt;body&gt;\n&lt;h1&gt;Creando elementos din\u00e1micamente&lt;\/h1&gt;\n&lt;section class=\"cards\"&gt;\n&lt;figure class=\"card\"&gt;\n&lt;img src=\"tech.jpg\" alt=\"Tech\"&gt;\n&lt;figcaption&gt;Tech&lt;\/figcaption&gt;\n&lt;\/figure&gt;\n&lt;figure class=\"card\"&gt;\n&lt;img src=\"animals.avif\" alt=\"Animals\"&gt;\n&lt;figcaption&gt;Animals&lt;\/figcaption&gt;\n&lt;\/figure&gt;\n&lt;figure class=\"card\"&gt;\n&lt;img src=\"people.avif\" alt=\"People\"&gt;\n&lt;figcaption&gt;People&lt;\/figcaption&gt;\n&lt;\/figure&gt;\n&lt;figure class=\"card\"&gt;\n&lt;img src=\"arch.webp\" alt=\"Arch\"&gt;\n&lt;figcaption&gt;Arch&lt;\/figcaption&gt;\n&lt;\/figure&gt;\n&lt;figure class=\"card\"&gt;\n&lt;img src=\"nature.jpg\" alt=\"Nature\"&gt;\n&lt;figcaption&gt;Nature&lt;\/figcaption&gt;\n&lt;\/figure&gt;\n&lt;\/section&gt;\n\n&lt;script&gt;\nconst $cards = document.querySelector(\".cards\"),\n$newCard = document.createElement(\"figure\");\n\n$newCard.innerHTML = `\n&lt;img src=\"tech.jpg\" alt=\"Tech\" \/&gt;\n&lt;figcaption&gt;Tech&lt;\/figcaption&gt;\n`;\n\n$newCard.classList.add(\"card\");\n\n\/\/ Reemplazar el tercer elemento\n\/\/ $cards.replaceChild($newCard, $cards.children[2]);\n\n\/\/ Insertar el elemento antes de un nodo que tomemos como referencia\n\/\/ Vamos a insertar un elemento antes del primero que aparece\n$cards.insertBefore($newCard, $cards.firstElementChild);\n\n\/\/ Eliminar un elemento\n$cards.removeChild($cards.lastElementChild);\n\n\/\/ Clonar \n$cloneCards = $cards.cloneNode(true);\n\ndocument.body.appendChild($cloneCards);\n&lt;\/script&gt;\n&lt;\/body&gt;\n&lt;\/html&gt;<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>En los cap\u00edtulos anteriores hemos trabajado con la manipulaci\u00f3n del DOM, como poder crear elementos de manera din\u00e1mica, vimos el [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":800,"menu_order":10,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-833","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En los cap\u00edtulos anteriores hemos trabajado con la manipulaci\u00f3n del DOM, como poder crear elementos de manera din\u00e1mica, vimos el [&hellip;]","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":2,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/833\/revisions"}],"predecessor-version":[{"id":835,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/833\/revisions\/835"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/800"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}