我遇到了问题,在博客上我有以下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是否存在于页面上,然后再调用此动作?
答案 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();
}