Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;“显示”;“正在工作”;隐藏“;事实并非如此。Javascript_Javascript_Toggle - Fatal编程技术网

&引用;“显示”;“正在工作”;隐藏“;事实并非如此。Javascript

&引用;“显示”;“正在工作”;隐藏“;事实并非如此。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

我有以下用于显示/隐藏切换的JS脚本。我必须保持这种格式,因为它使用的元素很多,格式也不好,在jQuery中创建它太麻烦了

正如标题所说,“显示”事件正在工作,而“隐藏”则没有。既然我是个彻头彻尾的JS noob,我想知道你能帮我什么。代码如下:

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有点过分了,依我看。