2012-10-27 31 views
0

根據您是否登錄,我希望具有不同的背景圖像。到目前爲止,我試圖用jQuery添加/刪除一個類到身體(使用登錄框來確定你是否登錄了),但是它並沒有像預期的那樣工作。根據現有元素添加/刪除正文類

第一條if語句有效,並將類'index'設置爲body,但是,當您登錄該類時,即使loginform不存在,也不會刪除該類。

那麼,如何改變這段代碼,使其能夠像我想要的那樣工作?提前致謝。

if($('#loginForm')) { 
    $('body').addClass('index'); 
} 
else { 
    $('body').removeClass('index'); 
} 
+0

綁定這個動作登錄方法。它只適用於首頁加載。您必須完成所有登錄和註銷操作。 –

回答

1

可以使用length屬性測試如果元素存在:

if ($('#loginForm').length) { 
    $('body').addClass('index'); 
} 
else { 
    $('body').removeClass('index'); 
} 

你也可以使用jQuery的內置size()方法,但它是更好的,你可以使用本機的性能。

+0

'size'已棄用 – charlietfl

+0

@charlietfl就這樣。這表明我多久使用它;) –

2

if($('#loginForm'))將始終返回true,因爲即使元素不存在,jquery也會創建一個空對象。使用length測試是否jQuery的元件對象存在

$('body').toggleClass('index', $('#loginForm').length); 

使用toggleClass可以縮短代碼,第二個參數是一個布爾