2016-08-17 156 views
0

這就是我用來在登錄和註冊div之間切換。如何調用一個全局變量document.getElementById到一個函數來獲取.className

下面是實際工作:

function myNavLogin() 
{ 
    document.getElementById("Content-Login").className = "Content-On"; 
    document.getElementById("Content-Register").className = "Content-Off"; 
} 

我想打電話給下一個全局變量:

function myNavLogin() 
{ 
    divLogin.className = "Content-On"; 
    divRegister.className = "Content-Off"; 
} 

第二個例子:

var divLogin = document.getElementById("Content-Login"); 
var divRegister = document.getElementById("Content-Register"); 

像這樣的函數內部沒有工作,我認爲是因爲變量沒有以正確的方式聲明,或者我打電話它不好...請幫助,謝謝。

問候,Chicler;)

回答

0

你的問題可能是一個簡單的變量範圍之一,但這裏有一個更全面的迴應呢。全局變量是一種可怕的編碼方式。你應該嘗試使用更多面向對象的方法。您還應該考慮將標籤名稱保留在變量名稱之外,因爲標記容易改變。最後,在切換類時,最好簡單地添加和刪除「開啓」狀態,並將「關閉」狀態設爲默認狀態。這裏有一個例子:

var AccountLogic = function(){ 
    this.elLogin = document.getElementById("Content-Login"); 
    this.elRegister = document.getElementById("Content-Register"); 
    this.login = function(){ 
    this.elLogin.classList.add("content-on"); 
    this.elRegister.classList.remove("content-on");} 
    } 
} 

var accountLogic = new AccountLogic(); 
+0

謝謝,這個想法很好,但不幸的是它不適合我:s – Chicler

相關問題