Две категории (например, собака и кошка) изображений, изображений и изображений. Я хочу щелкнуть по этому изображению и изменить его на картинку второй категории, если вы нажмете еще раз, он изменится на другую категорию. Так почему-то мне нужно определить изображения в одной из двух категорий, а затем чередовать их по клику.
<img src="img/dogImg.jpg" alt="" id="imgClickAndChange">
<h1 id="title">Dog Title</h1>
<p id="caption">caption for dog.</p>
function changeImage() {
if (document.getElementById("imgClickAndChange").src = "img/dogImg.jpg")
{
document.getElementById("imgClickAndChange").src = "img/catImg.jpg";
document.getElementById("title").innerHTML = "Cat Title";
document.getElementById("caption").innerHTML = "caption for cat.";
}
else
{
document.getElementById("imgClickAndChange").src = "img/dogImg.jpg";
document.getElementById("title").innerHTML = "Dog Title";
document.getElementById("caption").innerHTML = "caption for dog.";
}
}
var el = document.getElementById("imgClickAndChange");
el.addEventListener("click", changeImage, false);
Прямо сейчас, похоже, все меняется на информацию о кошке, но я не могу понять, как заставить ее вернуться к собаке. Наличие заголовка для собаки как в HTML, так и в Javascript кажется излишним. Есть ли более простой способ сделать все это? Благодарю!
У вас есть небольшая ошибка в коде.
Вместо
if (document.getElementById("imgClickAndChange").src = "img/dogImg.jpg")
делать
if (document.getElementById("imgClickAndChange").src === "img/dogImg.jpg")
if(document.getElementById("imgClickAndChange").src.slice(-10) === "dogImg.jpg")
или используйте if(document.getElementById("imgClickAndChange").getAttribute("src") === "img/dogImg.jpg")
как @Zub сказал
С .src
вы получаете абсолютный путь к изображению. getAttribute
этого используйте getAttribute
Попробуйте этот код:
if (document.getElementById("imgClickAndChange").getAttribute("src") === "img/dogImg.jpg") {
document.getElementById("imgClickAndChange").setAttribute("src", "img/dogImg.jpg")
...
console.log(document.getElementById("imgClickAndChange").src)
; Это то, что вы ожидаете?if (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg")
правило сравнения неверно, вам нужно, чтобы dobleif (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg")
:if (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg")