Javascript 当jQuery.hasClass不应返回时返回false';不会吧?
正在调用jQueryJavascript 当jQuery.hasClass不应返回时返回false';不会吧?,javascript,jquery,html,Javascript,Jquery,Html,正在调用jQuery.hasClass 供参考:alias='2983_pirrota_1011_A20_输入%2820cyc%29_773_CEL',它也是元素的id if ($('#' + alias).hasClass('selected')) { alert ("true"); } else { alert ("false"); } 但是,由于它是该类的成员,因此当它应该返回true时,它将返回false!。我使用javascript中的escape()函数对alias值的
.hasClass
供参考:alias='2983_pirrota_1011_A20_输入%2820cyc%29_773_CEL'
,它也是元素的id
if ($('#' + alias).hasClass('selected')) {
alert ("true");
} else {
alert ("false");
}
但是,由于它是该类的成员,因此当它应该返回true
时,它将返回false
!。我使用javascript中的escape()
函数对alias值的特殊字符进行转义。一旦我删除%
(这就是转义
和encodeURIcomponent
编码特殊字符的方式),它就会开始正常工作。这是一个已知的问题还是有一个简单的解决方法
谢谢。是的,这是众所周知的事。您需要用两个反斜杠转义特殊字符:是的,这是众所周知的事情。您需要用两个反斜杠转义特殊字符:试试这个
if ($('#' + alias.replace(/%/g, "\\\\")).hasClass('selected')) {
alert ("true");
} else {
alert ("false");
}
试试这个
if ($('#' + alias.replace(/%/g, "\\\\")).hasClass('selected')) {
alert ("true");
} else {
alert ("false");
}
是否有一个jQuery函数可以自动执行此操作?由于字符串是动态生成的。否,只需使用
别名.replace('%','\\%')
对其进行转义(您可以将其展开以包含更多字符)。是否有自动执行此操作的jQuery函数?由于字符串是动态生成的。否,只需使用别名.replace('%','\\%')
对其进行转义(您可以将其展开以包含更多字符)。