无法在 for each 循环中获取前一项

问题描述 投票:0回答:0

我在滚动事件中有以下代码:

         stickySliderItems.forEach( function( item, i ) { 
            if(i) { // exclude first
                let meScrollStart = scroll - sliderWrapperT - ( i * sliderItemH );
                let meScroll = _clamp( meScrollStart, min, max);
                let meShift = (i === sliderItemNum) ? maxS : meScroll.map(min, max, minS, maxS); // except last one
                item.style.transform = "translate(" + meShift + "px," + meScroll + "px)";
                if ( meScroll >= max - fadeMargin && !item.classList.contains("finished") ) { 
                    item.classList.add("finished");
                    stickySliderItems[i-1].classList.remove("finished");
                }; // can’t get this to work backwards
            };
        });

我喜欢做的事情显然很简单(在 jQuery 中对我来说确实如此),但在纯 JS 中很难实现。当我的代码将“finished”类附加到一个元素时,它应该同时从前一个兄弟元素中删除它。

我试了很多。 previousSibling 等没有任何作用。我的概念错误在哪里?

javascript foreach siblings
© www.soinside.com 2019 - 2024. All rights reserved.