-1

我正在使用 Swiper.js 在同一页面上创建多个滑块。

对于我正在编写的程序,我试图访问页面上的第二个滑动器,并根据我给它的参数将它移动到某个幻灯片。我可以使用
var mySwiper = document.querySelector('.swiper-container').swiper;
我尝试通过
var mySwiper = document.querySelectorAll('.swiper-container')[1].swiper;
控制台日志访问第二个刷卡器来访问第一个刷卡器mySwiper,它在两种方法上都返回相同的结果。

我也尝试过使用var mySwiper = document.querySelector('.swiper-container:nth-child(2)');,但返回null的不是刷卡信息。

getElementsByClassName也返回正确的值,但不让nextSlide()函数执行。

我想mySwiper.slideNext();在他们两个上使用,但它只适用于querySelector,而不是 selected querySelectorAll

问题是 querySelector 是实时的,而 querySelectorAll 是静态节点列表。如果我可以让 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();
    }
}

功能运行不受干扰。

4

1 回答 1

0

在我调用的第二个条件setSwiper((mySwiper, swiper));中,应该setSwiper(mySwiper, swiper);删除多余的括号来修复我的代码,同时使用getElementsByClassName.

于 2020-04-16T11:31:31.570 回答