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

Check if a DIV exist before running some Javascript

本文关键字:检查 DIV 是否 存在 运行 Javascript      更新时间:2023-09-26

我遇到了一个问题,在博客上,我下面有这个javascript代码,用于获取DIV ID 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?

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

if( document.getElementById('author-info') != null )
{
 var commentsPos = $('#author-info').offset().top - $(window).height();
}
var $authInfo = $('#author-info');
if($authInfo.length > 0){
    var commentsPos = $authInfo.offset().top - $(window).height();
}