0

我有以下用于显示/隐藏切换的 JS 脚本。我不得不保持这种格式,因为它处理的元素很多而且格式很差,而且在 jQuery 中制作它太麻烦了。

正如标题所说,“显示”事件正在工作,而“隐藏”则没有。而且由于我是一个完整的 JS 菜鸟,我想知道您是否可以帮助我。这是代码:

function toggle(obj) {
  for (var  i = 0; i< 50; i++) {
    var name = 'q' + i;
    var inchide_obj=document.getElementById(obj);
    if (inchide_obj && inchide_obj.style && inchide_obj.style.display == "block") {
      inchide_obj.style.display = "none";
    }
  }
  var deschide_obj=document.getElementById(obj);
  if (deschide_obj && deschide_obj.style) {
    deschide_obj.style.display = "block";
    deschide_obj.focus();
  }
}

html 暗示了一些文本块,每个文本块都有自己的类、q1、q2 等。提前感谢您的帮助:)

4

1 回答 1

2

您当前的代码首先尝试隐藏元素 50 次,并最终无条件地在最后显示它。我相信你正在寻找这个:

function toggle(id) {
    var obj = document.getElementById(id);
    if (obj && obj.style) {
        if(obj.style.display != "block") {
            obj.style.display = "block";
        } else {
            obj.style.display = "none";
        }
    }
}
于 2013-01-15T13:39:28.960 回答