Erreur de syntaxe, expression non reconnue pour href

Quand j’ajoute le script ci-dessous et le lance. obtenir,

Erreur non capturée: erreur de syntaxe, expression non reconnue: ul li a [href = #! Id1]

Vous ne savez pas quelle citation double est à l’origine du problème. quelqu’un peut-il aider à résoudre le problème?

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") } }); 

Vous devez mettre des caractères spéciaux entre guillemets lorsque vous utilisez un sélecteur basé sur un atsortingbut.

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

Votre version de sélecteur en résulterait

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

Le #! jettera une expression non reconnue.


Ma version où le "" échappe aux personnages

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

J’ai essayé la solution fournie par

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

qui a fonctionné pour moi. Je recherche [href=#] in js and replace with [href*=\\#]

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

vous pouvez append le code ci-dessous dans 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');