jQuery .hasClass在不应该返回false时返回false?

时间:2011-08-10 15:21:23

标签: javascript jquery html

正在调用jQuery .hasClass

供参考:alias = '2983_pirrota_1011_A20_Input%2820cyc%29_773_CEL',也是元素的id

if ($('#' + alias).hasClass('selected')) {
   alert ("true");
} else {
   alert ("false");
}

然而,当它应该返回false时它返回true,因为它是该类的成员!我在javascript中使用escape()函数来转义别名值的特殊字符。只要我删除%escapeencodeURIcomponent编码特殊字符的方式),它就会开始正常工作。这是一个已知问题还是有一个简单的方法呢?

感谢。

2 个答案:

答案 0 :(得分:1)

是的,这是一个众所周知的事情。您需要使用2个反斜杠转义特殊字符:http://api.jquery.com/category/selectors/

答案 1 :(得分:0)

试试这个

if ($('#' + alias.replace(/%/g, "\\\\")).hasClass('selected')) {
   alert ("true");
} else {
   alert ("false");
}