Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在运行一些Javascript之前,检查DIV是否存在_Javascript_Jquery - Fatal编程技术网

在运行一些Javascript之前,检查DIV是否存在

在运行一些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

我遇到了一个问题,在一个博客上,我下面有一段javascript代码,用于获取DIV id
作者信息的位置。问题是这个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();
}