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

前端之家收集整理的这篇文章主要介绍了jquery – 语法错误,href无法识别的表达式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我添加以下脚本并运行。得到,

Uncaught Error: Syntax error,unrecognized expression: ul li
a[href=#!id1]

不确定哪个双引号导致问题。任何一个可以帮助解决问题吗?

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

解决方法

使用基于属性的选择器时,需要用特殊字符括起来。
if ($('ul li a[href="' + id + '"]').length) {

您的版本的选择器会导致

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

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

我的版本中的“”转义字符

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

猜你在找的jQuery相关文章