【问题标题】:How to call a global var document.getElementById into a function to get the .className如何将全局变量 document.getElementById 调用到函数中以获取 .className
【发布时间】:2016-12-24 07:41:56
【问题描述】:

这就是我用来在 Login 和 Register 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";
}

第二个例子不起作用,我认为是因为变量没有以正确的方式声明,或者我说它不好......请帮忙,谢谢。

问候,奇克勒 ;)

【问题讨论】:

  • 哇这个帖子真的很老了。我可以在当天只使用 css 和 html 解决这个问题,所以我认为是时候结束这个问题了。无论如何感谢您的帮助!

标签: function global getelementbyid var classname


【解决方案1】:

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

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

【讨论】:

  • 谢谢,这个想法很好,但不幸的是它不适合我:s
猜你喜欢
  • 2023-01-29
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
  • 2022-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多