对数组的所有 aria-label 元素进行子字符串化
Substring all aria-label elements of an array
HTML
<div role="group" class="swiper-slide w-dyn-item" aria-label="1 / 13"
<div role="group" class="swiper-slide w-dyn-item" aria-label="2 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-prev" aria-label="3 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-active" aria-label="4 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-next" aria-label="5 / 13"
<div role="group" class="swiper-slide w-dyn-item" aria-label="6 / 13"
这里我有一个 JS 脚本,用于获取变量结果中活动幻灯片的编号。为了得到它,我从活动幻灯片的“aria-label”(仅保留“/ 13”之前的幻灯片编号)中获取子字符串信息:
var activeslide = $('.swiper-slide-active').attr('aria-label');
activeslide = activeslide.substring(0, activeslide.indexOf(" "))
var numactiveslide = parseInt(activeslide);
numactiveslide = numactiveslide - 1;
players[(numactiveslide)].play();
结果 // numactiveslide: "4"
**如何让 3 张特殊幻灯片(上一张、活动的、下一张)相同。
我尝试做同样的事情,为一组新的 3 个活动幻灯片(swiper-slide-prev、swiper-slide-active 和 swiper-slide-next)工作。
这是所选幻灯片的变量:
var **activeslides** = $('.swiper-slide-prev,.swiper-slide-active,.swiper-slide-next');
预期结果是 3 个活动幻灯片编号:
// numactiveslides = 3,4,5
如何通过编写 loop 或 forEach 或类似的东西来使代码工作?这应该很容易,但我没有设法为每个元素重复子字符串,最后得到一个数组:
numactivesslides (3):
numactivesslides[0] = 3
numactivesslides[1] = 4
numactivesslides[2] = 5
好的,我终于找到了答案。它工作正常。
var activeslides;
var activslidesnumber = [];
var activplyrs = [];
var activslidlength;
setTimeout(function(){
activeslides = $('.swiper-slide-prev,.swiper-slide-active,.swiper-slide-next');
console.log("actives slides:",activeslides);
activslidlength = activeslides.length;
console.log('activslidlength ',activslidlength);
var arialabel;
for (let n = 0; n < activslidlength; n ++) {
//get numbers
arialabel = activeslides[n].getAttribute('aria-label');
//update to keep only first num before space
arialabel = arialabel.substring(0, arialabel.indexOf(" "));
arialabel = parseInt(arialabel);
// put each arialabels on this var list
activslidesnumber.push(arialabel);
// fit fist slide to first player
activplyrs.push(arialabel - 1);
};
console.log("actives slides num:",activslidesnumber);
console.log('activplyrs ',activplyrs)
// THEN IF NEEDED, PLAY PLYR ON ACTIVE SLIDES
if (activplyrs[2] == undefined) {
covplayers[(activplyrs[0])].play();
covplayers[(activplyrs[1])].play();
} else {
covplayers[(activplyrs[0])].play();
covplayers[(activplyrs[1])].play();
covplayers[(activplyrs[2])].play();
}, 200);
//然后用 covplayers.pause();
对被动幻灯片做同样的事情
HTML
<div role="group" class="swiper-slide w-dyn-item" aria-label="1 / 13"
<div role="group" class="swiper-slide w-dyn-item" aria-label="2 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-prev" aria-label="3 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-active" aria-label="4 / 13"
<div role="group" class="swiper-slide w-dyn-item swiper-slide-next" aria-label="5 / 13"
<div role="group" class="swiper-slide w-dyn-item" aria-label="6 / 13"
这里我有一个 JS 脚本,用于获取变量结果中活动幻灯片的编号。为了得到它,我从活动幻灯片的“aria-label”(仅保留“/ 13”之前的幻灯片编号)中获取子字符串信息:
var activeslide = $('.swiper-slide-active').attr('aria-label');
activeslide = activeslide.substring(0, activeslide.indexOf(" "))
var numactiveslide = parseInt(activeslide);
numactiveslide = numactiveslide - 1;
players[(numactiveslide)].play();
结果 // numactiveslide: "4"
**如何让 3 张特殊幻灯片(上一张、活动的、下一张)相同。 我尝试做同样的事情,为一组新的 3 个活动幻灯片(swiper-slide-prev、swiper-slide-active 和 swiper-slide-next)工作。
这是所选幻灯片的变量:
var **activeslides** = $('.swiper-slide-prev,.swiper-slide-active,.swiper-slide-next');
预期结果是 3 个活动幻灯片编号: // numactiveslides = 3,4,5
如何通过编写 loop 或 forEach 或类似的东西来使代码工作?这应该很容易,但我没有设法为每个元素重复子字符串,最后得到一个数组:
numactivesslides (3):
numactivesslides[0] = 3
numactivesslides[1] = 4
numactivesslides[2] = 5
好的,我终于找到了答案。它工作正常。
var activeslides;
var activslidesnumber = [];
var activplyrs = [];
var activslidlength;
setTimeout(function(){
activeslides = $('.swiper-slide-prev,.swiper-slide-active,.swiper-slide-next');
console.log("actives slides:",activeslides);
activslidlength = activeslides.length;
console.log('activslidlength ',activslidlength);
var arialabel;
for (let n = 0; n < activslidlength; n ++) {
//get numbers
arialabel = activeslides[n].getAttribute('aria-label');
//update to keep only first num before space
arialabel = arialabel.substring(0, arialabel.indexOf(" "));
arialabel = parseInt(arialabel);
// put each arialabels on this var list
activslidesnumber.push(arialabel);
// fit fist slide to first player
activplyrs.push(arialabel - 1);
};
console.log("actives slides num:",activslidesnumber);
console.log('activplyrs ',activplyrs)
// THEN IF NEEDED, PLAY PLYR ON ACTIVE SLIDES
if (activplyrs[2] == undefined) {
covplayers[(activplyrs[0])].play();
covplayers[(activplyrs[1])].play();
} else {
covplayers[(activplyrs[0])].play();
covplayers[(activplyrs[1])].play();
covplayers[(activplyrs[2])].play();
}, 200);
//然后用 covplayers.pause();
对被动幻灯片做同样的事情