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');