2012-04-12 157 views
1

我遇到问题,在博客上我有下面这个javascript代码,用于获取DIV ID的位置author-info。问题是这个div只在实际的文章页面上,而不在任何目录页面或索引上。在运行一些Javascript之前检查DIV是否存在

所以在这些网页上没有在div我得到这个错误

Uncaught TypeError: Cannot read property 'top' of null 

这里是JavaScript导致错误

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

我知道我可以在后台做这只在适当的页面上显示JS的那一行,但我想避免这种情况,因为这只是包含在页面中的一个更大的JavaScript文件的一行。

我在这里有什么选择?任何帮助,我想我需要以某种方式检查,看看这个div在调用这个动作之前是否存在于页面上?

回答

1

如果DOM元素存在,你可以检查,然后做你的jQuery

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

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

@davidthomas严重......?首先包括jquery。 jQuery总是返回一个对象。我将这归因于一个精神错位......你**有**知道...... – 2012-04-12 23:49:11

+0

哦......呃。是啊。对不起。 = / – 2012-04-13 14:26:10

相关问题