如何将字符串与jquery text()进行比较?我试过这个,但它不起作用。
var str = 'hello';
var string = $(this).find("text").trim();
if(str == string)
{
string.css("visibility", "visible");
}
我的代码出了什么问题?有什么好主意吗?谢谢
答案 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");
}