Jquery语法错误,ID选择器上无法识别的表达式
问题描述:
使用angular和jquery滚动到基于他的位置哈希字符串的元素。 在我的情况下,我需要在字符串中包含'?'字符,但它似乎像jquery有这个问题。Jquery语法错误,ID选择器上无法识别的表达式
这是链接:
<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将包含前导#
,因此您不需要再添加一个。
你忘了'$()'或类似的东西吗? – Itay 2015-02-08 08:52:08