La propiedad className obtiene y establece el valor del atributo class del elemento HTML especificado.
El nombre de este atributo: 'className' es utilizado para esta propiedad en lugar de 'class' para evitar conflictos con la palabra clave "class"
Confeccionar un algoritmo que permita mostrar/ocultar una sección en una página HTML.
Inicialmente debe haber un mensaje que se encuentre oculto y debemos hacer clic en un enlace para mostrarlo.
Luego si hacemos nuevamente clic volvemos a ocultarlo.
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> <link rel="stylesheet" href="estilos.css"> </head> <body> <div class="mensajeoculto" id="mensaje"> Todo este texto permanece oculto hasta que se presiona el enlace de la parte inferior. </div> <a href="#" id="enlace">Mostrar/Ocultar Mensaje.</a> <script src="funciones.js"></script> </body> </html>
estilos.css
.mensajeoculto { display: none; } .mensajevisible { color: #aaf; background-color: #ff0; display: block; font-size: 30px; width: 400px; border: 1px solid #00f; padding: 5px; }
funciones.js
document.getElementById('enlace').addEventListener('click', () => { let ele = document.querySelector('#mensaje') if (ele.className == 'mensajeoculto') ele.className = 'mensajevisible' else ele.className = 'mensajeoculto' })
Para resolver este problema cuando se presiona el hipervinculo procedemos a extraer el nombre de la clase asignada al elemento. En el caso que contenga el valor 'mensajeoculto' procedemos a cambiar por la clase 'mensajevisible' (esta otra clase hace visible el elemento HTML):
let ele = document.querySelector('#mensaje') if (ele.className == 'mensajeoculto') ele.className = 'mensajevisible' else ele.className = 'mensajeoculto'