Hola, este es un problema muy básico que actualmente no puedo resolver. Usando solo JavaScript, estoy tratando de crear un botón Me gusta que cambie su contenido de texto de un corazón vacío a un corazón lleno al mismo tiempo que tiene una funcionalidad de incremento y disminución. Estoy usando Unicode como contenido de texto.
Mi problema es que la declaración if parece estar funcionando bien, ya que con un clic pasa de un corazón vacío a un corazón lleno al mismo tiempo que se incrementa, pero la declaración else no parece funcionar. Simplemente parece estar atascado en el corazón completo y solo sigue aumentando al hacer clic.
Intenté usar else if también, pero tampoco parece funcionar.
Cualquier consejo es apreciado.
let likes = Math.floor(Math.random() * 100)+1; const likesDiv = document.createElement("span"); const likesButton = document.createElement("button"); likesDiv.appendChild(likesButton); const emptyHeart = '\u2661'; const fullHeart = '\u2665'; likesButton.textContent = emptyHeart; likesDiv.innerText = `${likes}`; likesButton.addEventListener("click", toggle) function toggle() { if (likesButton.textContent = emptyHeart) { likesButton.textContent = fullHeart likes++; likesDiv.innerText = `${likes} `; } else{ likesButton.textContent = emptyHeart; likes--; likesDiv.innerText = `${likes} `; } };Las comparaciones se realizan con doble signo igual == . Un solo signo igual asigna el valor a la variable y devuelve el valor asignado. JavaScript convertirá automáticamente esto en un booleano, lo que resultará en el paso al bloque if para todos los valores verdaderos .