jquery text()与string比较

时间:2014-08-15 07:18:17

标签: javascript jquery

如何将字符串与jquery text()进行比较?我试过这个,但它不起作用。

var str = 'hello';
var string = $(this).find("text").trim();

if(str == string)
{          
   string.css("visibility", "visible");
}

我的代码出了什么问题?有什么好主意吗?谢谢

3 个答案:

答案 0 :(得分:6)

如果您想使用text方法,则需要实际使用它。使用find("text")会尝试在元素中找到<text>元素,并且没有这样的元素。

此外,使用jQuery trim方法,因为string.trim方法并非在所有浏览器中都可用。将样式应用于元素,而不是字符串:

var str = 'hello';
var string = $.trim($(this).text());

if(str == string)
{          
   $(this).css("visibility", "visible");
}

答案 1 :(得分:1)

你没有收到任何错误吗?

通常在某些东西上调用.find会搜索一个DOM元素。找不是用于搜索文本。

使用find(“text”),您正在寻找DOM树中的元素。并且它们没有关联的.trim()方法,因此您应该收到类似'TypeError的错误:undefined不是函数'

也许您想要做的是以下......

var string_elem = $(this),
    str = 'hello',
    string = string_elem.find("text").text().trim();

if(str === string) {
    string_elem.css('visibility', 'visible');
}

此外,如果您希望字符串比较不区分大小写,则应该执行类似

的操作
if(str.toLowerCase() === string.toLowerCase()) 

答案 2 :(得分:0)

string只是一个字符串,因此您无法.css();

并且最好使用其他变量名而不是string,这似乎已经保留了一个。

试试这个

var str = 'hello';
var string = $(this).find("text").trim();
var string_elem = $(this);
if(str == string){          
   string_elem.css("visibility", "visible");
}