0

我无法弄清楚是什么问题,请帮助。

传入了新的 Num,控制台日志显示它正在为 activeSlide 找到正确的元素

var activeSlide = $("#ep"+newNum);

for (var i=0; i< allSlides.length; i++){

    var slidegrab = $("#ep"+i);

    console.log(slidegrab == activeSlide)
    if (slidegrab == activeSlide){
        console.log("stop loop and stop shuffle");
        return;
    } else {
        slidegrab.appendTo('#slideshow');
    }
}

我的控制台将为 slidegrab 和 activeSlide 变量显示正确的名称。对于每个循环,条件将显示为假,从不为真。我错过了什么?

谢谢!!

4

2 回答 2

3

它们是两个不同的 jQuery 对象。您需要比较 DOM 元素。

slidegrab[0] === activeSlide[0]

或者,也许您想按索引而不是按元素跟踪当前幻灯片。这更常见。

于 2013-01-17T18:46:21.587 回答
3

您可以比较 id 而不是包装器:

var activeSlide = $("#ep"+newNum);

for (var i=0; i< allSlides.length; i++){

    var slidegrab = $("#ep"+i);

    if (newNum== i){
        console.log("stop loop and stop shuffle");
        return;
    } else {
        slidegrab.appendTo('#slideshow');
    }
}
于 2013-01-17T18:47:21.107 回答