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

时间:2012-04-12 21:30:37

标签: javascript jquery

我遇到了问题,在博客上我有以下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文件的一行。

我有什么选择?请帮助,我想我需要以某种方式检查,看看这个div是否存在于页面上,然后再调用此动作?

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

var $authInfo = $('#author-info');

if($authInfo.length > 0){
    var commentsPos = $authInfo.offset().top - $(window).height();
}