Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用hashbang的jQuery无法识别的表达式_Javascript_Jquery_Ajax_Hashbang - Fatal编程技术网

Javascript 使用hashbang的jQuery无法识别的表达式

Javascript 使用hashbang的jQuery无法识别的表达式,javascript,jquery,ajax,hashbang,Javascript,Jquery,Ajax,Hashbang,我有一些片段在点击时加载。我还将页面滚动到这些链接的顶部,如上所示。我得到以下错误:未捕获错误:语法错误,无法识别的表达式:#!片段名称 我的js HTML 我尝试了var target=$($(this.hash));不高兴 一切仍然正常,我只想知道如何修复此问题并从控制台中删除错误。这是因为JQuery选择器中有一个特殊字符。拆下!从你的href,一切都会好起来的 您只需使用.replace即可退出: $(this.hash.replace( /([!])/g, "\\$1" )) 不

我有一些片段在点击时加载。我还将页面滚动到这些链接的顶部,如上所示。我得到以下错误:未捕获错误:语法错误,无法识别的表达式:#!片段名称

我的js

HTML

  • 我尝试了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" ))