сделать querySelectorAll живой список узлов - PullRequest
0 голосов
/ 16 апреля 2020

Я использую Swiper. js для создания нескольких ползунков на одной странице.

Для программы, которую я пишу, я пытаюсь получить доступ ко второму Swiper на странице и переместить его на определенный слайд. на основании параметров, которые я даю. Я могу получить доступ к первому var mySwiper = document.querySelector('.swiper-container').swiper; Я попытался получить доступ ко второму swiper через var mySwiper = document.querySelectorAll('.swiper-container')[1].swiper; Если я консоль журнала mySwiper, он возвращает то же самое в обоих методах.

Я также пытался использовать var mySwiper = document.querySelector('.swiper-container:nth-child(2)');, но он вернул null вместо информации о swiper.

getElementsByClassName также возвращает правильные значения, но не позволяет выполнять функцию nextSlide().

Я хочу использовать mySwiper.slideNext(); на обоих из них, но она работает только на querySelector, а не на выбранном querySelectorAll.

Проблема в том, что querySelector является действующим, а querySelectorAll является stati c nodeList. Я могу решить эту проблему, если смогу сделать querySelectorAll живым, однако я не нашел никакой документации по нему.

Мой полный код:

if (condition1) {
     var mySwiper = document.querySelector('.swiper-container').swiper;
     var swiper = value1;
     setSwiper(mySwiper, swiper);
}
else if (condition2){
    var swiper = customObject['option2'];
    var mySwiper = document.querySelectorAll('.swiper-container')[1].swiper;
    setSwiper((mySwiper, swiper));
}

function setSwiper(selected, arg){
    if(arg == "B"){
        selected.slideNext();
    } else if(arg == "C"){
        selected.slideNext();
        selected.slideNext();
    }
}

Функции выполняются без помех.

1 Ответ

0 голосов
/ 16 апреля 2020

Во втором условии, которое я назвал setSwiper((mySwiper, swiper));, что должно быть setSwiper(mySwiper, swiper); удаление лишних скобок исправило мой код вместе с использованием getElementsByClassName.

...