在运行一些Javascript之前检查DIV是否存在
问题描述:
我遇到问题,在博客上我有下面这个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在调用这个动作之前是否存在于页面上?
答
如果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();
}
@davidthomas严重......?首先包括jquery。 jQuery总是返回一个对象。我将这归因于一个精神错位......你**有**知道...... – 2012-04-12 23:49:11
哦......呃。是啊。对不起。 = / – 2012-04-13 14:26:10