语法错误,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');