Jquery 未捕获无法读取null的顶部
我有一些这样的链接:Jquery 未捕获无法读取null的顶部,jquery,Jquery,我有一些这样的链接: <ul class="vertlist"> <li><a href="#personal" title="Go to Personal section." class="crumblink">Personal</a></li> <li><a href="#business" title="Go to Business section." class="crumblink">
<ul class="vertlist">
<li><a href="#personal" title="Go to Personal section." class="crumblink">Personal</a></li>
<li><a href="#business" title="Go to Business section." class="crumblink">Business</a></li>
<li><a href="#company" title="Go to Company section." class="crumblink">Company</a></li>
<li><a href="#engineering" title="Go to Engineering section." class="crumblink">Engineering</a></li>
<li><a href="#it" title="Go to IT section." class="crumblink">IT</a></li>
<li><a href="#hr" title="Go to HR section." class="crumblink">HR</a></li>
</ul>
在我点击任何链接的那一刻,我得到了一个关于以下内容的未捕获异常:
“无法读取null的顶部属性”
例如,针对个人的锚定标签如下所示:
<ul class="vertlist">
<li><a href="#personal" title="Go to Personal section." class="crumblink">Personal</a></li>
<li><a href="#business" title="Go to Business section." class="crumblink">Business</a></li>
<li><a href="#company" title="Go to Company section." class="crumblink">Company</a></li>
<li><a href="#engineering" title="Go to Engineering section." class="crumblink">Engineering</a></li>
<li><a href="#it" title="Go to IT section." class="crumblink">IT</a></li>
<li><a href="#hr" title="Go to HR section." class="crumblink">HR</a></li>
</ul>
Personal
锚变量不包含适用于您站点的有效选择器。对此调用offset将返回null
您正在尝试访问不存在的href
如果您试图从锚点获取
href
属性,那么您做得不对(或者我还没有揭开jQuery的奥秘):
应该是:
scrollTop: $(this.href).offset().top
如果href
的值是无效的选择器,offset()
可能会返回null
。此代码将防止:
var elements = $(this.href);
if (elements && elements.length) {
$('html, body').animate({
scrollTop: elements.offset().top
}, 500);
}
var elements = $(this.href);
if (elements && elements.length) {
$('html, body').animate({
scrollTop: elements.offset().top
}, 500);
}