簡體   English   中英

Substring 數組的所有 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”中獲取了 substring 信息(只保留“/ 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"

**如何獲得相同的不是 1 個而是 3 個特殊幻燈片(上一個、活動、下一個)。 我嘗試獲得相同的效果,為一組新的 3 張活動幻燈片(swiper-slide-prev、swiper-slide-active 和 swiper-slide-next)工作。

這是所選幻燈片的 var:

 var **activeslides** = $('.swiper-slide-prev,.swiper-slide-active,.swiper-slide-next');

預期結果是 3 個活動幻燈片編號: // numactiveslides = 3,4,5

如何通過編寫循環forEach或類似的東西來使代碼工作? 這應該很容易,但我沒有設法為每個元素重復 substring,最后得到一個數組:

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(); 對被動幻燈片做同樣的事情;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM