http://jsfiddle.net/PhilFromHeck/KzSxT/

在这个小提琴中,您可以在Javascript的第38行看到我尝试进行的比较不起作用。我相信是因为一个变量是一个对象,另一个是元素。有没有人对我如何找到这两者之间的匹配有任何建议?

menuID[0] = document.getElementById('menuOne');
menuID[1] = document.getElementById('menuTwo');
menuID[2] = document.getElementById('menuThree');
menuID[3] = document.getElementById('menuFour');
$('.menu').mouseenter(function () {
  for (var i = 0; i < 3; i++) {
    if(menuID[i] == $(this)){
      //this condition is not met, there's an alert which will add more detail in the fiddle
    }
  }
}

最佳答案

方法document.getElementById返回DOM元素,而不是jQuery对象。在mouseenter事件处理程序中,this也引用DOM元素。

因此,为了比较它们,您不应该将this转换为jQuery对象:

if (menuID[i] === this) { ... }

10-07 21:24