2012-04-12 122 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

相關問題