Syntax error, unrecognized expression for href
84,513
Solution 1
You need to enclose special characters in quotes when using a attribute based selector.
if ($('ul li a[href="' + id + '"]').length) {
Your version of selector would result
if ($("ul li a[href=#!...]").length) {
The #!
will throw unrecognized expression.
My version where the ""
escape the characters
if ($('ul li a[href="#!..."]').length) {
Solution 2
I tried the solution provided by
https://github.com/jquery/jquery/issues/2885
which worked for me. I search for [href=#] in js and replace with [href*=\\#]
a[href*=\\#]:not([href=\\#])
Solution 3
you may add the below code in 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');
Author by
TDG
Updated on December 12, 2020Comments
-
TDG over 3 years
When I add below script and run. I am getting this:
Uncaught Error: Syntax error, unrecognized expression: ul li a[href=#!id1]
I am not sure which double quote causing the issue.
HTML
<ul> <li class="slist selected" id="id1"><a href="#!id10">Test1/a></li> <li class="slist" id="id2"><a href="#!id20">Test2</a></li> <li class="slist" id="id3"><a href="#!id30">Test3/a></li> </ul>
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") } });
-
KhoPhi almost 7 yearsThis worked. It appears jquery below the above version had issues. Thanks for pointing out.
-
questionbank over 4 yearsIn my scenario, I was using $(document).on("click", "a[href^=#]", function(e) { and I added only single quote a[href^='#']" and it's working. Thanks Shaunak. upvote form my side.
-
Damion Gomez almost 4 yearsI searched for [href=# and wrapped everything between the equals and closing bracket in quotes. "[href=#abc]" became "[href='#abc']"
-
Vimal Patel over 3 yearsDoes this answer has anything to do with mention question?