1

我遇到了一个问题,在博客上,我在下面有这段 javascript 代码,用于获取 DIV id 的 Position author-info。问题是这个 div 只在实际的文章页面上,而不是在任何目录页面或索引上。

因此,在这些没有 div 的页面上,我收到此错误

Uncaught TypeError: Cannot read property 'top' of null

这是导致错误的javascript

var commentsPos = $('#author-info').offset().top - $(window).height();

我知道我可以在后端这样做,只在正确的页面上显示那行 JS,但我想避免这种情况,因为这只是页面中包含的更大的 javascript 文件的 1 行。

我在这里有什么选择?请提供任何帮助,我假设我需要在调用此操作之前以某种方式检查页面上是否存在此 div?

4

2 回答 2

1

您可以检查 DOM 元素是否存在,然后执行 jQuery

if( document.getElementById('author-info') != null )
{
 var commentsPos = $('#author-info').offset().top - $(window).height();
}
于 2012-04-12T21:32:48.430 回答
1
var $authInfo = $('#author-info');

if($authInfo.length > 0){
    var commentsPos = $authInfo.offset().top - $(window).height();
}
于 2012-04-12T21:33:38.120 回答