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

Javascript 循环不通过的条件内部。为什么?,javascript,jquery,for-loop,conditional-statements,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){ c

我不知道怎么了,请帮忙

传入新的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');
    }
}
var-activeSlide=$(“#ep”+newNum);
对于(var i=0;i
我的控制台将显示slidegrab和activeSlide变量的正确名称。对于每个循环,条件将显示false,而从不显示true。我错过了什么


谢谢

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

slidegrab[0] === activeSlide[0]

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

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

slidegrab[0] === activeSlide[0]

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

您可以比较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');
    }
}
var-activeSlide=$(“#ep”+newNum);
对于(var i=0;i
您可以比较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');
    }
}
var-activeSlide=$(“#ep”+newNum);
对于(var i=0;i
它们可能是两个不同的jQuery包装器。您可能需要按ID比较它们?为什么不比较
newNum
i
呢?您的console.log应该为您提供
true
false
它们可能是两个不同的jQuery包装器。您可能需要按ID比较它们?为什么不比较
newNum
i
呢?根据变量的名称,您的console.log应该为
true
false
会非常混乱!根据变量的名称将非常混乱!谢谢,这些小东西让我……我是一个写javascript的动作脚本编写者。我会考虑改用索引,也许对优化更好。谢谢,这些小东西让我明白了…我是一个写javascript的actionscripter。我将研究如何使用索引,这对于优化可能更好。