Contenido del curso
Seleccionando y Accesando a Elementos del DOM
Manipulando Elementos del DOM
- 6

Atributos y Propiedades en HTML y su Manipulación con JavaScript
Viendo ahora - 7

Modificar texto en HTML con JavaScript
04:49 min - 8

Modificar Estilos CSS con JavaScript: Propiedad Style y ClassName
11:30 min - 9

Uso de classList para Manipular Clases en Elementos HTML
07:37 min - 10

Manipulación del DOM con innerHTML e InsertAdjacentHTML
09:47 min - 11

Agregar elementos HTML sin reemplazar contenido existente
05:17 min - 12

Creación y Manipulación de Elementos DOM con createElement
13:28 min - 13

remove() vs removeChild() en el DOM
05:42 min - 14

Clonación y Reemplazo de Elementos en JavaScript
12:47 min
Manipulando Eventos en el DOM
- 15

Eventos y Flujo en Programación Web: Capturing y Bubbling
05:03 min - 16

Eventos del mouse y clic en JavaScript
11:46 min - 17

Qué es event.target y cómo usarlo
07:35 min - 18

Validación de Formularios con JavaScript: Prevenir Comportamiento por Defecto
10:06 min - 19

Delegation Pattern en JavaScript: Mejora de Eventos Click en Listas
09:29 min
Asincronía en JavaScript
Creando un Administrador de Tareas
- 21

Creación de un Task Manager con Persistencia usando Local Storage
09:01 min - 22

Editar y borrar tareas con delegación de eventos
13:35 min - 23

Persistencia de Datos con Local Storage en Tareas Web
15:17 min - 24

Guardado y edición de tareas en local storage con JavaScript
10:59 min - 25

Manejo de Errores en Local Storage para Tareas Dinámicas
03:24 min - 26

Persistencia de tema dark/light con localStorage
07:18 min - 27

Creación de Páginas Web Dinámicas con JavaScript
01:28 min
Atributos y Propiedades en HTML y su Manipulación con JavaScript
Resumen
Comprender la diferencia entre atributos y propiedades es fundamental para manipular el DOM con JavaScript de forma efectiva. Aunque ambos conceptos parecen sinónimos, su comportamiento difiere en momentos clave, especialmente cuando modificamos elementos desde código.
¿Qué son los atributos en HTML?
Los atributos son todas las características que agregamos directamente a las etiquetas de HTML. En el caso de un elemento <input>, podemos encontrar atributos como value, type, class, id e incluso required [0:18]. Cada etiqueta HTML puede recibir distintos atributos según su naturaleza; por ejemplo, una etiqueta <a> tiene el atributo href, mientras que un <input> acepta value y type.
El atributo required resulta útil cuando necesitas que el usuario complete obligatoriamente un campo del formulario, evitando que lo deje en blanco [0:49].
¿Cómo se convierten los atributos en propiedades del DOM?
Cuando el navegador termina de parsear el HTML y genera el DOM, cada atributo se convierte en una propiedad dentro del objeto del nodo correspondiente [1:08]. Es decir, las propiedades son el reflejo de los atributos en JavaScript.
Para observar esto en la práctica, se puede seleccionar un elemento con document.querySelector y luego inspeccionar su nodo con console.dir [2:20]:
javascript const input = document.querySelector('input'); console.dir(input);
Al expandir el objeto resultante, encontramos propiedades como value, type, className e id, que corresponden directamente a los atributos definidos en el HTML [2:48].
¿Cómo modificar una propiedad desde JavaScript?
Acceder y cambiar una propiedad es sencillo. Por ejemplo, para leer el valor actual del input [3:42]:
javascript input.value; // "nombre"
Y para modificarlo:
javascript input.value = 'apellido';
Al ejecutar esta línea, el cambio se refleja inmediatamente en el DOM, es decir, el texto visible en el campo cambia a "apellido" [3:56].
¿Por qué el atributo HTML no cambia cuando modificamos la propiedad?
Este es uno de los puntos más importantes. Si después de modificar input.value desde JavaScript inspeccionamos el HTML original, veremos que el atributo value sigue mostrando "nombre" [4:12]. Esto ocurre porque:
- Los atributos reflejan el estado inicial del HTML, tal como fue escrito originalmente.
- Las propiedades reflejan el estado actual del DOM, que puede cambiar dinámicamente con JavaScript.
En otras palabras, los atributos y las propiedades no siempre están sincronizados [4:22]. Aunque comparten el mismo nombre y valor inicial, una vez que el navegador renderiza el documento, los atributos conservan su valor original mientras que las propiedades pueden actualizarse libremente.
¿Por qué es importante distinguir entre atributos y propiedades?
Esta distinción marca la diferencia al trabajar con formularios, validaciones y cualquier interacción dinámica. Algunos puntos clave:
document.querySelectorpermite seleccionar elementos del DOM por etiqueta, clase o ID [1:57].console.dirmuestra el objeto completo del nodo, incluyendo todas sus propiedades y métodos [2:20].- Modificar una propiedad con JavaScript actualiza lo que el usuario ve en pantalla, pero no altera el HTML fuente.
- Si necesitas modificar el atributo directamente, existen métodos como
setAttributeygetAttributeque operan sobre el marcado original.
Entender esta relación te permite tomar decisiones más precisas: ¿necesitas cambiar lo que el usuario ve en el momento? Modifica la propiedad. ¿Necesitas que el cambio persista en el marcado? Trabaja directamente con los atributos.
Si quieres profundizar o tienes dudas sobre cómo los distintos elementos manejan esta sincronización, comparte tu experiencia en los comentarios.