Creación de un elemento de tipo accordion usando javaScript

Vamos a ver un ejemplo de como generar elementos dinámicos en nuestro documento unicamente con javaScript, sin recurrir a librerias adicionales.

En nuestro documento, cada título con la etiqueta <h3> es un elemento desplegable que permite mostrar u ocultar su texto anidado al hacer clic sobre él.

El ejemplo va a ser progresivo, yendo de menos a más complejidad, para tratar de explicar mejor cómo se realiza el proceso de desarrollo. Para eso vamos a partir de un planteamiento inicial sencillo, usando estrategias con las que estamos más familiarizados, pero más largo en su desarrollo, y menos optimizado y funcional. Este código inicial lo vamos a ir modificando, para acabar reemplazándolo por un desarrollo más complejo, pero más funcional.

Paso 1. Usando una variable para saber si el elemento está visible o no.

Paso 2. Sin usar variables fuera de la función.

Paso 3. Modificando la función anterior para añadir un parámetro.

Paso 4. Usando un atributo data- en el h3

Paso 5. Dejar visible un único elemento

Paso 6. Ocultar el elemento visible si pinchamos en él

Paso 7. Definir estado inicial del documento

Paso 8. Cálculo dinámico de la altura de cada bloque de respuesta