Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

152
Vistas
Agregar clase a un <div> con JS haciendo clic en un botón

Básicamente, estoy tratando de tener un div en flexbox que contenga otros divs y quiero poder cambiar la dirección flexible haciendo clic en dos botones encima de él.

 <body> <div> <button class="button-1">Display Column</button> <button class="button-2">Display Row</button> </div> <div class="main"> <div class="container-1">One</div> <div class="container-2">Two</div> <div class="container-3">Three</div> </div> <style> .main{ display: flex; } </style> </body>

Soy nuevo en JS y no puedo encontrar nada que funcione. ¿Alguna ayuda?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

  • Use data-* para asignar un atributo personalizado con valor
  • Use el conjunto de dataset de JS para recuperar el valor de data-*
  • Use type="button" en botones de elementos de acción que no sean del tipo submit
  • No use nombres de clase únicos. La clase debe ser común, los ID deben ser únicos
  • Nunca use controladores onclick (como se sugiere incorrectamente en otras respuestas), a menos que esté creando Elementos nuevos desde la memoria. Use addEventListener() en su lugar:

 // DOM utility functions: const ELS = (sel, par) => (par || document).querySelectorAll(sel); const EL = (sel, par) => (par || document).querySelector(sel); // Task: const changeDirection = (evt) => { const direction = evt.currentTarget.dataset.direction; EL(".main").style.flexDirection = direction; }; ELS("[data-direction]").forEach(EL_btn => EL_btn.addEventListener("click", changeDirection));
 .main { display: flex; }
 <div> <button type="button" data-direction="column">Display Column</button> <button type="button" data-direction="row">Display Row</button> </div> <div class="main"> <div>One</div> <div>Two</div> <div>Three</div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usando la función addEventListener() :

 let mainDiv = document.querySelector('.main'); document.querySelector('.button-1').addEventListener('click', () => { mainDiv.style.flexDirection = 'column'; }); document.querySelector('.button-2').addEventListener('click', () => { mainDiv.style.flexDirection = 'row'; });
 .main { display: flex; }
 <div> <button class="button-1">Display Column</button> <button class="button-2">Display Row</button> </div> <div class="main"> <div class="container-1">One</div> <div class="container-2">Two</div> <div class="container-3">Three</div> </div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda