&引用;“显示”;“正在工作”;隐藏“;事实并非如此。Javascript
我有以下用于显示/隐藏切换的JS脚本。我必须保持这种格式,因为它使用的元素很多,格式也不好,在jQuery中创建它太麻烦了 正如标题所说,“显示”事件正在工作,而“隐藏”则没有。既然我是个彻头彻尾的JS noob,我想知道你能帮我什么。代码如下:&引用;“显示”;“正在工作”;隐藏“;事实并非如此。Javascript,javascript,toggle,Javascript,Toggle,我有以下用于显示/隐藏切换的JS脚本。我必须保持这种格式,因为它使用的元素很多,格式也不好,在jQuery中创建它太麻烦了 正如标题所说,“显示”事件正在工作,而“隐藏”则没有。既然我是个彻头彻尾的JS noob,我想知道你能帮我什么。代码如下: function toggle(obj) { for (var i = 0; i< 50; i++) { var name = 'q' + i; var inchide_obj=document.getElementById
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();
}
}
功能切换(obj){
对于(变量i=0;i<50;i++){
变量名称='q'+i;
var inchide_obj=document.getElementById(obj);
if(inchide_obj&&inchide_obj.style&&inchide_obj.style.display==“块”){
inchide_obj.style.display=“无”;
}
}
var deschide_obj=document.getElementById(obj);
if(描述对象和描述对象样式){
deschide_obj.style.display=“块”;
描述对象焦点();
}
}
html包含一些文本块,每个文本块都有自己的类q1、q2等。提前感谢您的帮助:)您当前的代码首先尝试隐藏元素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";
}
}
}
“在jQuery中实现它太麻烦了”我对此表示怀疑。你在所有浏览器中都测试过它吗?请记住,并非所有的原生javascript函数都在工作,或者对所有浏览器都有相同的实现,这就是为什么如果您正在开发一个不担心浏览器兼容性的应用程序,那么使用“jQuery”@jobertenano为这些简单的事情鼓吹jQuery有点过分了,依我看。