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

197
Vistas
¿Cómo pongo fotos en classlist.remove/add en JS?

Soy nuevo en stackoverflow y comencé a aprender js hace solo unas semanas, aquí está el código:

 'use strict'; let a = 1; king.addEventListener('click', function(){ a++; if(a%2 == 0){ king.classList.remove(?) king.classList.add(?) } else { king.classList.remove(?) king.classList.add(?) } });

a -> contador, king es un div, tengo dos fotos llamadas king0 y king1 en la carpeta pics.

Tarea = cuando se hace clic en el rey, cambia a la segunda imagen -> primera imagen y así sucesivamente

pregunta = ¿cómo pongo fotos en "?", aunque probablemente hice todo mal y tengo que empezar de nuevo

bueno, se solicitó html pero es muy básico:

 <!DOCTYPE html> <html> <head> <meta charset = "UTF-8"> <title>DOC</title> <link rel="stylesheet" href="style.css"> </head> <body> <div id = "king" class = "kingcss"> //kingcss class is empty <img src= "pics/king0.png"> </div> <script src="script.js"></script> </body> </html>
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

classList no contiene sus imágenes directamente; en cambio, es una lista de nombres de clase CSS aplicados al elemento. Puedes asociar imágenes con esas clases en CSS:

 let a = 0; let king = document.querySelector('.king') king.addEventListener('click', function() { a++; if (a % 2 == 0) { king.classList.add('one') king.classList.remove('two') } else { king.classList.add('two') king.classList.remove('one') } });
 .king { width: 100px; height: 100px; border: 2px solid; } .one { background-image: url('http://placekitten.com/101/101') } .two { background-image: url('//placekitten.com/100/100') }
 <div class="king">King</div>

Sin embargo, voy a sugerir algunas simplificaciones que podría hacer a su código más allá de simplemente hacer que funcione:

  • Depende de una variable global a aquí para realizar un seguimiento de la imagen a la que desea cambiar a continuación. Esto no es necesario y le brinda una cosa más para realizar un seguimiento; en su lugar, sería mejor simplemente verificar el estado actual del elemento.
  • Activa una clase y desactiva otra clase, lo que significa que en realidad tiene cuatro estados posibles (el primero activado, el segundo activado, ambos activados o ambos desactivados) si las cosas no funcionan perfectamente. (En realidad, puede ver esto en el ejemplo anterior; antes de que el usuario haga clic, está en el estado "ambos desactivados"). Realmente solo quieres dos estados posibles: imagen uno o imagen dos.

A continuación se muestra un ejemplo con esos problemas resueltos: en lugar de probar a , prueba los contenidos de classList; y en lugar de tener múltiples clases para alternar, una de las imágenes está en el estado "predeterminado".

 let king = document.querySelector('.king') king.addEventListener('click', function() { king.classList.toggle('two') });
 .king { width: 100px; height: 100px; border: 2px solid; background-image: url('http://placekitten.com/101/101') } .two { background-image: url('//placekitten.com/100/100') }
 <div class="king">King</div>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Por favor agregue su HTML. No todo está mal. Sin mirar su HTML, asumo que tiene una etiqueta de imagen diferente para king0 y king1. Si desea utilizar classList.remove() o classList.add(), debe especificar el nombre de la clase que está agregando o eliminando del nodo classList.

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