Hay muchas marcas HTML que pueden tener definidos atributos. Muchos de estos son casi obligatorios para su funcionamiento. Imaginemos la marca HTML <a> , si no definimos el atributo href con la dirección del sitio poco sentido tendrá incluirla en la página.
Veamos con un ejemplo como proceder a definir un atributo a un nodo de tipo elemento:
pagina.html:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Prueba</title>
</head>
<body>
<input type="button" value="Crear nodo tipo elemento y definir el atributo href" onClick="crearElementoyAtributo()">
<div id="direccion">
</div>
<script src="funciones.js"></script>
</body>
</html>
funciones.js:
function crearElementoyAtributo() {
let elemento = document.createElement('a')
let puntero = document.getElementById('direccion')
puntero.appendChild(elemento)
let nodotexto = document.createTextNode('google')
elemento.appendChild(nodotexto)
elemento.setAttribute('href', 'https://www.google.com.ar')
}
Como funciona:
Creamos un nodo de tipo elemento:
let elemento = document.createElement('a')
Obtenemos una referencia al div llamado direccion:
let puntero = document.getElementById('direccion')
Añadimos el nodo de tipo elemento al div:
puntero.appendChild(elemento)
Creamos un nodo de texto:
let nodotexto = document.createTextNode('google')
Ahora añadimos el nodo de texto al nodo de tipo elemento que acabamos de crear:
elemento.appendChild(nodotexto)
Por último y lo nuevo, es definir el atributo href al ancla que acabamos de crear:
elemento.setAttribute('href', 'https://www.google.com.ar')
El primer parámetro es el nombre de la propiedad (en este caso href) y el segundo es el valor que toma la propiedad.