Javascript 无法比较index()和整数?

Javascript 无法比较index()和整数?,javascript,jquery,Javascript,Jquery,我很困惑。我试图将某些li元素的索引与一个不断变化的整数变量进行比较,但即使将两者打印到console并在两者上尝试parseInt,此比较或任何比较都会返回false: $(this).index() <= this.midMenuIndex 完整代码: 如果event.key==ArrowRight{ 如果此.midMenuIndex小于2{ 这个.midMenuIndex++; } }如果event.key==arrow left,则为else{ 如果此.midMenuIndex>

我很困惑。我试图将某些li元素的索引与一个不断变化的整数变量进行比较,但即使将两者打印到console并在两者上尝试parseInt,此比较或任何比较都会返回false:

$(this).index() <= this.midMenuIndex
完整代码:

如果event.key==ArrowRight{ 如果此.midMenuIndex小于2{ 这个.midMenuIndex++; } }如果event.key==arrow left,则为else{ 如果此.midMenuIndex>0{ 这是midMenuIndex-; } } $'.dots li'.eachfunction{ console.logparseInt$this.index==this.midMenuIndex;
我也试过$this.index==this.midMenuIndex,什么都不做。都分别将数字0-2打印到控制台。为什么这里比较不起作用?

虽然我不能确定这在你的大多数代码中指的是什么,但我可以告诉你,$'.dots li'。每个函数{…}都会改变它所指的内容。Per:

无论何时调用jQuery的.each方法,回调函数的上下文(this)都设置为DOM元素

这意味着在大多数代码中,This.midMenuIndex将引用相同的值,但是在.eachfunction{…}中的最后一行中,This.midMenuIndex将引用正在迭代的当前元素的midMenuIndex属性

要保留对此外部对象的引用,请将其存储为变量:

const self=这个; 如果event.key==ArrowRight{ 如果self.midMenuIndex<2{ self.midMenuIndex++; } }如果event.key==arrow left,则为else{ 如果self.midMenuIndex>0{ self.midMenuIndex-; } } $'.dots li'.eachfunction{ console.logparseInt$this.index==self.midMenuIndex; };