我使用angular和jquery滚动到基于其位置哈希字符串的元素。在我的情况下,我需要在字符串中包含“?” char,但似乎jquery对此有问题。
这是链接:
<a href="#/faq#whenAreLotteryResultsUpdatedOnTheSite?">when Are Lottery Results Updated OnThe Site </a>
这是jQuery代码:
var elem = '#' + $location.hash();
console.log($(elem));
错误:
Error: Syntax error, unrecognized expression: #whenAreLotteryResultsUpdatedOnTheSite?
有什么办法吗?
是的,jQuery将拒绝在CSS选择器中选择带有特殊字符的元素。您只需要使用以下命令将其转义\\
:
var elem = $location.hash().replace(/\?/, '\\\\?');
这样可以正确地转义?
字符。
另请注意,location.hash将已经包含前导,#
因此您无需再添加前导。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句