Javascript nextElementSibling为空

Javascript nextElementSibling为空,javascript,for-loop,Javascript,For Loop,我正在尝试使用vanilla JS创建鉴定模块,当我在集合中使用“for”循环时遇到问题-控制台写入鉴定[I]。nextElementSibling为null。当我手动设置集合元素的索引时没有问题-它可以工作 <section class="testimonials-wrap"> <h2>testimonials</h2> <div> <p class=

我正在尝试使用vanilla JS创建鉴定模块,当我在集合中使用“for”循环时遇到问题-控制台写入鉴定[I]。nextElementSibling为null。当我手动设置集合元素的索引时没有问题-它可以工作

<section class="testimonials-wrap">     
            <h2>testimonials</h2>
            <div>
                <p class="active">Mauris quis nulla ut dui luctus euismod ac sit amet diam. Nulla ullamcorper tortor nec.</p>
                <p>Vivamus aliquet massa nec odio sagittis, eget faucibus metus malesuada. Nam sed neque pellentesque, cursus.</p>
                <p>Sed bibendum nec ligula sit amet accumsan. Sed neque est, commodo sed tortor in, tincidunt.</p>
            </div>
        <ul>
            <li class="next"><i class="fa fa-chevron-right"></i></li>
            <li class="prev"><i class="fa fa-chevron-left"></i></li>
        </ul>
</section>

function goToTheNextTest(){
    var testimonials = document.getElementsByClassName("testimonials-wrap")[0].getElementsByTagName("div")[0].getElementsByTagName("p");
    for(var i = 0; i < testimonials.length; i++){
        if(testimonials[i].className === "active"){
            testimonials[i].className = "";
            //testimonials[i].nextElementSibling.className = "active";
        }
    }
}

推荐书

Mauris quis nullar和luctus euismod ac sit amet DIAME。不适用于荷兰航空公司

我们的生活充满活力,我们的生活充满活力。Nam sed neque Pellentsque,cursus

这是一个很好的例子。这是内克街,这是托托街

函数goToTheNextTest(){ var testiciousals=document.getElementsByClassName(“证明包装”)[0]。getElementsByTagName(“div”)[0]。getElementsByTagName(“p”); for(var i=0;i<推荐长度;i++){ if(推荐[i].className==“活动”){ 推荐书[i].className=“”; //推荐信[i].nextElementSibling.className=“活动”; } } }
这是因为您试图获取循环中的下一个元素,但没有更多可用元素,因此:

if (i !== testimonials.length -1) {
        testimonials[i].nextElementSibling.className = "active";
}
基本上,只有在下一个元素不是最后一次迭代的情况下才能得到它的同级元素;所以如果你有3个元素,不要试图得到4个


tesimonials.length是3,所以我们减去1

只要用这种方式更改for循环即可

for(var i = 0; i < testimonials.length-1; i++)
for(变量i=0;i
您是否检查了即将发布的推荐信[i]?没有。怎样做更好?
var-estimonials=document.queryselectoral(“.estimonials-wrap>div>p”)据我所知,这里的循环不可用,因为代码在事件之后执行