如何将全局var document.getElementById调用到函数中以获取.className

时间:2016-08-17 15:01:22

标签: function global getelementbyid var classname

这就是我用来在登录和注册div之间切换的。

以下是实际工作:

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

我想调用下一个全局变量:

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

像这样的函数内部:

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

第二个例子不起作用,我认为因为变量没有以正确的方式声明,或者我称之为坏...请帮助,谢谢。

问候,Chicler;)

1 个答案:

答案 0 :(得分:0)

你的问题可能是一个简单的变量范围,但无论如何这里都是一个更彻底的反应。全局变量是一种可怕的编码方式。您应该尝试使用更面向对象的方法。您还应该考虑将标记名称保留在变量名称之外,因为标记很容易更改。最后,当切换类时,最好简单地添加和删除“on”状态,并将“off”状态作为默认状态。这是一个例子:

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();