Testando seu código aqui, descobri que o problema está nos valores que você está usando para checar se os caminhos de src
são iguais. Enquanto "img/teste1.jpg"
é um caminho relativo, o caminho gerado por document.getElementById("imgClickAndChange").src
é um caminho absoluto, por isso, o teste nunca vai ser verdadeiro.
Quando passei um console.log(document.getElementById("imgClickAndChange").src)
aqui, por exemplo, obtive o seguinte caminho:
http://127.0.0.1:5500/01-sorting/02-two-or-more-columns/img/teste1.jpg
(No caso, estou usando um servido local, por isso não está aparecendo C://User...
.)
Então, se eu comparar os caminhos, teremos um false
como resposta:
"http://127.0.0.1:5500/01-sorting/02-two-or-more-columns/img/teste1.jpg" === "img/teste1.jpg"
// false
Como resolver isso?
Talvez não seja a única, mas foi a que encontrei. Usando .getAtrribute()
.
No caso, usamos em conjunto com o seletor do elemento, passando src
como argumento, como no exemplo abaixo. Aí só mudaria a linha do seu if
, que ficaria assim:
function changeImage() {
if (document.getElementById("imgClickAndChange").getAttribute('src') == "img/teste1.jpg"){
// Aqui não muda
} // Restante do código não muda
}
Link para saber e conhecer mais:
- MDN Docs - Element.getAttribute()
- Alura - Caminhos: entenda as diferenças entre absolutos e relativos