在运行一些Javascript之前,检查DIV是否存在
我遇到了一个问题,在一个博客上,我下面有一段javascript代码,用于获取DIV id在运行一些Javascript之前,检查DIV是否存在,javascript,jquery,Javascript,Jquery,我遇到了一个问题,在一个博客上,我下面有一段javascript代码,用于获取DIV id作者信息的位置。问题是这个div只在实际的文章页面上,而不在任何目录页面或索引上 因此,在这些没有div的页面上,我得到了这个错误 Uncaught TypeError: Cannot read property 'top' of null 下面是导致错误的javascript var commentsPos = $('#author-info').offset().top - $(window).hei
作者信息的位置。问题是这个div只在实际的文章页面上,而不在任何目录页面或索引上
因此,在这些没有div的页面上,我得到了这个错误
Uncaught TypeError: Cannot read property 'top' of null
下面是导致错误的javascript
var commentsPos = $('#author-info').offset().top - $(window).height();
我知道我可以在后端这样做,只在适当的页面上显示JS行,但我希望避免这样做,因为这只是页面中包含的更大javascript文件的一行
我的选择是什么?如果需要帮助,我想我需要在调用此操作之前检查页面上是否存在此div?您可以检查DOM元素是否存在,然后执行jQuery
if( document.getElementById('author-info') != null )
{
var commentsPos = $('#author-info').offset().top - $(window).height();
}
@大卫托马斯真的。。。?首先包括jquery。jQuery总是返回一个对象。我要把这归因于精神错乱。。。你必须知道。。。
var $authInfo = $('#author-info');
if($authInfo.length > 0){
var commentsPos = $authInfo.offset().top - $(window).height();
}