JQuery - основной для проблемы цикла

0

Я хочу обновить src изображения в зависимости от ссылки, которую я нажимаю с помощью jquery. У меня есть четыре ссылки и изображение, показанное выше.

Если я нажму на первую ссылку, я хочу, чтобы src изображения изменил первый элемент массива контейнеров. Он должен увеличиваться так, чтобы достигнуть последнего элемента массива.

Каков наилучший способ сделать этот базовый подход?

<figure>
    <img src="http://lorempixel.com/g/400/200/" />
    <figcaption>
        <nav>
            <a href="#">Image One</a>
            <a href="#">Image Two</a>
            <a href="#">Image Three</a>
            <a href="#">Image Four</a>
        </nav>
    </figcaption>
</figure>

JQuery:

$(function(){

    var container = [
       "http://lorempixel.com/g/400/200/",
       "http://lorempixel.com/g/400/200/",
       "http://lorempixel.com/g/400/200/",
       "http://lorempixel.com/g/400/200/"
    ];

    var i;
    $("nav a").on("click", function(){
            for(i = 0; i < 4; i++) {
                $("img").attr("src", container[i]);
            }
    });

});
Теги:

1 ответ

1

Использовать это:

var container = [
    "http://lorempixel.com/g/400/200/",
    "http://lorempixel.com/g/400/200/",
    "http://lorempixel.com/g/400/200/",
    "http://lorempixel.com/g/400/200/"];

$("nav a").on("click", function () {
    $("img").prop("src", container[$(this).index()]);
});

Пример jsFiddle

Вы можете использовать функцию jQuery .index() чтобы найти, на какую ссылку щелкнуть, и выбрать соответствующий элемент массива. Оба основаны на нуле.

  • 0
    Спасибо! Должен ли я использовать prop() или я также могу использовать attr() ?
  • 0
    Это зависит от версии jQuery, которую вы используете. В последних версиях используйте prop ().
Показать ещё 1 комментарий

Ещё вопросы

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