Basic Javascript - щелчок мышью для изменения изображения и подписи

0

Задача

Две категории (например, собака и кошка) изображений, изображений и изображений. Я хочу щелкнуть по этому изображению и изменить его на картинку второй категории, если вы нажмете еще раз, он изменится на другую категорию. Так почему-то мне нужно определить изображения в одной из двух категорий, а затем чередовать их по клику.


HTML

<img src="img/dogImg.jpg" alt="" id="imgClickAndChange">
<h1 id="title">Dog Title</h1>
<p id="caption">caption for dog.</p>

Javascript

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 кажется излишним. Есть ли более простой способ сделать все это? Благодарю!

  • 0
    console.log(document.getElementById("imgClickAndChange").src) ; Это то, что вы ожидаете?
  • 2
    if (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg") правило сравнения неверно, вам нужно, чтобы doble if (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg") : if (document.getElementById("imgClickAndChange").src == "img/dogImg.jpg")
Показать ещё 1 комментарий
Теги:
addeventlistener
getelementbyid

2 ответа

3
Лучший ответ

У вас есть небольшая ошибка в коде.

Вместо

if (document.getElementById("imgClickAndChange").src = "img/dogImg.jpg")

делать

if (document.getElementById("imgClickAndChange").src === "img/dogImg.jpg")
  • 0
    Несмотря на то, изменяю ли я это утверждение, чтобы иметь == или ===, когда я нажимаю, ничего (не картинка или подпись) не меняется. Нужно ли мне заявление if if?
  • 0
    попробуйте if(document.getElementById("imgClickAndChange").src.slice(-10) === "dogImg.jpg") или используйте if(document.getElementById("imgClickAndChange").getAttribute("src") === "img/dogImg.jpg") как @Zub сказал
Показать ещё 1 комментарий
0

С .src вы получаете абсолютный путь к изображению. getAttribute этого используйте getAttribute

Попробуйте этот код:

if (document.getElementById("imgClickAndChange").getAttribute("src") === "img/dogImg.jpg") {
    document.getElementById("imgClickAndChange").setAttribute("src", "img/dogImg.jpg")
    ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню