我有一个菜单,我想要做的是当我将鼠标悬停在某个子菜单项上时,文本等于让我们说'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
}
});
感谢您的帮助。非常感谢。
答案 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
});