有条件的内部循环不通过。为什么?

时间:2013-01-17 18:43:34

标签: javascript jquery for-loop conditional-statements

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

传入新的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变量的正确名称。条件将为每个循环显示false,永远不会为true。我错过了什么?

谢谢!

2 个答案:

答案 0 :(得分:3)

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

slidegrab[0] === activeSlide[0]

或者您可能希望按索引跟踪当前幻灯片,而不是按元素跟踪。这更常见。

答案 1 :(得分: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');
    }
}