无法识别的表达式:a[href^=#]
Unrecognized expression: a[href^=#]
我正在尝试制作一个简单的 "scrollTo element" 函数。
控制台显示错误:
语法错误,无法识别的表达式:a[href^=#] for a[href^=#] code
根据 上的回复,我将哈希符号用双引号括起来,但现在控制台显示 Unexpected token ILLEGAL。
请解释我做错了什么以及如何解决它。
这是我的代码:
$(document).on('click', 'a[href^=#]', function () {
$('html, body').animate({ scrollTop: $('section[data-target="'+this.hash.slice(1)+'"]').offset().top }, 1000 );
return false;
});
menu {
background-color: #1abc9c;
height: 50px;
position: fixed;
left: 0;
top: 0;
width: 100%;
margin: 0;
padding: 0;
}
menu ul li {
display: inline-block;
padding: 0 15px;
}
menu ul li a {
color: #333;
text-decoration: none;
}
section {
height: 300px;
padding: 60px 0 0 45px;
}
.one {
background-color: #3498db;
}
.two {
background-color: #e74c3c;
}
.three {
background-color: #f39c12;
}
.four {
background-color: #2c3e50;
}
<menu>
<ul>
<li><a href="#one">One</a></li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a></li>
<li><a href="#four">Four</a></li>
</ul>
</menu>
<section class="one" data-target="one">Section One</section>
<section class="two" data-target="two">Section Two</section>
<section class="three" data-target="three">Section Three</section>
<section class="four" data-target="four">Section Four</section>
由于 #
是 jquery 的 元字符 ,您必须使用 quotes 或你必须使用 \
,
来逃避它
$(document).on('click', 'a[href^="#"]', function () {
或
$(document).on('click', 'a[href^=\#]', function () {
DEMO
试试改成
a[href*=\#]
这对我有用 :)
我用 jquery 3.5.1
a[href*=#]
→return错误
a[href*="#"]
→ 工作正常
我正在尝试制作一个简单的 "scrollTo element" 函数。
控制台显示错误: 语法错误,无法识别的表达式:a[href^=#] for a[href^=#] code
根据
请解释我做错了什么以及如何解决它。
这是我的代码:
$(document).on('click', 'a[href^=#]', function () {
$('html, body').animate({ scrollTop: $('section[data-target="'+this.hash.slice(1)+'"]').offset().top }, 1000 );
return false;
});
menu {
background-color: #1abc9c;
height: 50px;
position: fixed;
left: 0;
top: 0;
width: 100%;
margin: 0;
padding: 0;
}
menu ul li {
display: inline-block;
padding: 0 15px;
}
menu ul li a {
color: #333;
text-decoration: none;
}
section {
height: 300px;
padding: 60px 0 0 45px;
}
.one {
background-color: #3498db;
}
.two {
background-color: #e74c3c;
}
.three {
background-color: #f39c12;
}
.four {
background-color: #2c3e50;
}
<menu>
<ul>
<li><a href="#one">One</a></li>
<li><a href="#two">Two</a></li>
<li><a href="#three">Three</a></li>
<li><a href="#four">Four</a></li>
</ul>
</menu>
<section class="one" data-target="one">Section One</section>
<section class="two" data-target="two">Section Two</section>
<section class="three" data-target="three">Section Three</section>
<section class="four" data-target="four">Section Four</section>
由于 #
是 jquery 的 元字符 ,您必须使用 quotes 或你必须使用 \
,
$(document).on('click', 'a[href^="#"]', function () {
或
$(document).on('click', 'a[href^=\#]', function () {
DEMO
试试改成
a[href*=\#]
这对我有用 :)
我用 jquery 3.5.1
a[href*=#]
→return错误a[href*="#"]
→ 工作正常