当我添加以下脚本并运行。得到,
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) {