Javascript 使用hashbang的jQuery无法识别的表达式
我有一些片段在点击时加载。我还将页面滚动到这些链接的顶部,如上所示。我得到以下错误:未捕获错误:语法错误,无法识别的表达式:#!片段名称 我的js HTMLJavascript 使用hashbang的jQuery无法识别的表达式,javascript,jquery,ajax,hashbang,Javascript,Jquery,Ajax,Hashbang,我有一些片段在点击时加载。我还将页面滚动到这些链接的顶部,如上所示。我得到以下错误:未捕获错误:语法错误,无法识别的表达式:#!片段名称 我的js HTML 我尝试了var target=$($(this.hash));不高兴 一切仍然正常,我只想知道如何修复此问题并从控制台中删除错误。这是因为JQuery选择器中有一个特殊字符。拆下!从你的href,一切都会好起来的 您只需使用.replace即可退出: $(this.hash.replace( /([!])/g, "\\$1" )) 不
我尝试了var target=$($(this.hash));不高兴
一切仍然正常,我只想知道如何修复此问题并从控制台中删除错误。这是因为JQuery选择器中有一个特殊字符。拆下!从你的href,一切都会好起来的 您只需使用
.replace
即可退出代码>:
$(this.hash.replace( /([!])/g, "\\$1" ))
不能这样做,需要“!#”hashbang,因此谷歌抓取AJAX内容。我替换了var target=$(this.hash);使用var target=$(this.hash.replace(/([!])/g,“\\$1”);该错误现在读取未捕获错误:语法错误,无法识别的表达式:[name=!Fragment_name]@DirtyBirdDesign这是您的第二个选择器($('[name='+this.hash.slice(1)+'];
)。只需在=
之后和]
之前添加引号:$(“[name=“”+this.hash.slice(1)+“”)代码>太好了!两者的结合起了作用。我不明白/[!]/g到底做了什么,我知道它是在逃避“!”而不是为什么。我得到的第二部分,逃离切片中的“#”。非常感谢,回答得很好!
<li><a href="#!Fragment_Name">Link Text</a></li>
$(this.hash.replace( /([!])/g, "\\$1" ))