JavaScript es fundamental para sacar el máximo partido a los nuevos elementos y características de HTML5, permitiendo crear experiencias web dinámicas e interactivas. La interacción se produce principalmente de dos maneras:
<article>
, <section>
, <nav>
, <header>
, <footer>
, <aside>
, etc.), son accesibles y manipulables por JavaScript usando las API del DOM. document.getElementById()
, document.querySelector()
, document.querySelectorAll()
.setAttribute()
, getAttribute()
, removeAttribute()
).innerHTML
, textContent
, appendChild()
, removeChild()
).element.style
o gestionando clases con element.classList
).addEventListener()
).let miVideo = document.querySelector('#miVideo');
// miVideo.play();
// console.log(miVideo.duration);
let miLienzo = document.querySelector('#miCanvas');
let ctx = miLienzo.getContext('2d');
// ctx.fillStyle = 'green';
// ctx.fillRect(10, 10, 100, 100);
show()
, showModal()
(para un diálogo modal que bloquea el resto de la interfaz) y close()
. let miDialogo = document.querySelector('#miModal');
// miDialogo.showModal();
// miDialogo.close();
input
(ej. date
, color
, range
), leer sus valores, y especialmente interactuar con la API de validación de restricciones de HTML5 (element.validity
para ver el estado de validez, element.setCustomValidity('')
para mensajes de error personalizados).<template>
para declarar fragmentos de HTML inactivos que luego pueden ser clonados (content.cloneNode(true)
) y activados (insertados en el DOM) para generar contenido dinámicamente.data-*
personalizados en cualquier elemento son una forma moderna y estándar para que HTML almacene datos que JavaScript puede leer y escribir fácilmente a través de la propiedad dataset del elemento (element.dataset.miAtributo
).En esencia, mientras HTML define la estructura y el significado, JavaScript proporciona la capacidad de manipular esa estructura y responder a las interacciones del usuario, aprovechando al máximo las capacidades que los nuevos elementos de HTML5 ofrecen.