我有一个显示/隐藏切换的以下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等。先谢谢你的帮助:))
答案 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";
}
}
}