语法错误,href的无法识别的表达式

当我添加下面的脚本并运行。 得到,

未捕获错误:语法错误,无法识别的表达式:ul li a [href =#!id1]

不确定导致问题的双引号。 任何人都可以帮助解决这个问题吗?

HTML

 

JS

 $(document).ready(function () { var id = "#!" + window.location.href.split("!")[1]; if ($("ul li a[href=" + id + "]").length) { console.log("present"); } else { console.log("absent") } }); 

使用基于属性的选择器时,需要在引号中包含特殊字符。

 if ($('ul li a[href="' + id + '"]').length) { 

您的选择器版本将会产生

 if ($("ul li a[href=#!...]").length) { 

#! 将抛出无法识别的表达。


我的版本""逃脱了人物

 if ($('ul li a[href="#!..."]').length) { 

我尝试了提供的解决方案

 https://github.com/jquery/jquery/issues/2885 

这对我有用。 我[href=#] in js and replace with [href*=\\#]搜索[href=#] in js and replace with [href*=\\#]

 a[href*=\\#]:not([href=\\#]) 

你可以在functions.php中添加以下代码

 function modify_jquery() { if (!is_admin()) { wp_deregister_script('jquery'); wp_register_script('jquery', 'https://code.jquery.com/jquery-1.11.3.min.js'); wp_enqueue_script('jquery'); } } add_action('init', 'modify_jquery');