“显示”正在工作,“隐藏”不是。使用Javascript

时间:2013-01-15 13:32:02

标签: javascript toggle

我有一个显示/隐藏切换的以下JS脚本。我有点必须保持这种格式,因为它所处理的元素很多并且格式很糟糕,在jQuery中制作它会太麻烦。

正如标题所说,“show”事件正在发挥作用,而“hide”则没有。因为我是一个完整的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等。先谢谢你的帮助:))

1 个答案:

答案 0 :(得分: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";
        }
    }
}