== не работает в моей инструкции IF - PullRequest
0 голосов
/ 07 апреля 2019

У меня есть простая функция (вверх), здесь ее стрелка, и он должен щелкнуть мышью, должен проверить изображение 1 в div "gallerymain", и если он там, он должен показать изображение 2. Иначе, если изображение 3 отображается, и предполагается, что оно показывает изображение 4.

однако по неизвестной причине == не работает (я проверил с предупреждением), я также убедился, что все в правильном случае и пути. Самое смешное, что если я буду использовать = вместо ==, это будет работать, но при нажатии на него будет показано изображение 2, независимо от того, что (даже если изображение 3 есть), я понимаю, почему (потому что я назначаю путь к src. Может быть, кто-нибудь, пожалуйста, взгляните на него по-новому и посмотрите, чего мне не хватает.

спасибо!

  function up () {         


     if 
        (document.getElementById("gallerymain").src == 
    "../images/gallery/image1.jpg") 
        {
        document.getElementById("gallerymain").src = 
    "../images/gallery/image2.jpg"
        }
    else if   
    (document.getElementById("gallerymain").src == 
    "../images/gallery/image3.jpg") 
        {
    document.getElementById("gallerymain").src = 
    "../images/gallery/image4.jpg"
        }
    }

1 Ответ

6 голосов
/ 07 апреля 2019

img.src getter (как в img.src == '../img.jpg') возвращает абсолютный URL , то есть http://mysite.dev/img.jpg. img.src setter (как в img.src = '../img.jpg') изменяет относительный URL на абсолютный.
getAttribute метод возвращает именно то, что было назначено. Так что попробуйте.

if 
    (document.getElementById("gallerymain").getAttribute('src') == 
"../images/gallery/image1.jpg") 
    {
    document.getElementById("gallerymain").src = 
"../images/gallery/image2.jpg"
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...