悬停在jQuery中并没有评估if语句是否等于'比较运算符

时间:2014-04-07 02:49:19

标签: javascript jquery

我有一个菜单,我想要做的是当我将鼠标悬停在某个子菜单项上时,文本等于让我们说'foo'从那里我想创建一个弹出菜单项。问题是如果我使用if语句来评估文本等于(==)让我们说'foo'它没有用。但是,如果我使用indexOf(" foo")那么它可以工作。我需要做些什么来使jals中的悬停事件中的equals(==)比较运算符工作。以下是一些示例代码,概述了我想要完成的任务:

$(".static.dynamic-children:nth-child(1) li").hover(function () {
  var textValue = $(this).text();

    //Doesn't work - if statement is never evaluated
    if(textValue == "foo")
    {
      //Create flyout menu
    }

    //Works fine
    if(textValue.indexOf("foo") > -1)
    {        
      //Create flyout menu 
    }
});

感谢您的帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

看起来问题是文本中可能存在的前导/尾随空格....您可以在比较之前修剪文本值。

var textValue = $(this).text().trim();//or $.trim($(this).text()) for IE < 9 support

但我建议在添加悬停处理程序之前进行过滤,如

$(".static.dynamic-children:nth-child(1) li").filter(function () {
    return $.trim($(this).text()) == 'foo';
}).hover(function () {
    //Create flyout menu
});