无法理解条件IF语句代码

时间:2015-09-03 12:13:32

标签: javascript jquery

以下代码是为了提交按钮的切换可见性而编写的。你能解释条件IF语句吗?

function ToggleVisibility(){
  var b ='btn_Submit,btn_Abort_Master';
  var temp = new Array();
      temp = b.split(',');
  var el;var i=0;
  for(i=0;i<temp.length;i++){
      try{
             el = document.getElementById(temp[i]);
      }catch(e){
          try{
             el = document.all[temp[i]];
          }catch(e){}
      }
      if (el && (el = el.style) && ('string' == typeof el.visibility){
           el.visibility = ('hidden' == el.visibility ? 'visible' :'hidden');
      }
  }
  return true;
}

3 个答案:

答案 0 :(得分:1)

它检查以下条件:

  1. 变量el具有值(意味着 document.getElementById(temp [i])或document.all [temp [i]]方法调用返回一个元素)
  2. 元素el具有已定义的样式属性
  3. style.visibility属性值的类型是字符串

答案 1 :(得分:0)

el - 如果声明此变量,则返回true el = el.style - 如果你能用el.style替换el,则返回true 'string' == typeof el.visibility - 如果el.visibility是一个字符串,则返回true

if (el && (el = el.style) && ('string' == typeof el.visibility) - 如果所有这些陈述都属实,请el.visibility = ('hidden' == el.visibility ? 'visible' :'hidden');

答案 2 :(得分:0)

 function ToggleVisibility(){

  var b ='btn_Submit,btn_Abort_Master';    
  

以上是您在网页上使用字符串(eleemnt id's)

获取的元素
 var temp = new Array();
      temp = b.split(',');
  var el;var i=0;
  

获取一个数组对象并用逗号分割变量b以便你   会得到btn_Submit,btn_Abort_Master在数组中。因此temp [0]保存第一个值和temp [1]第二个值,它们是需要检查和应用切换的元素id。

 for(i=0;i<temp.length;i++){
      try{
             el = document.getElementById(temp[i]);
      }catch(e){
          try{
             el = document.all[temp[i]];
          }catch(e){}
      }
      if (el && (el = el.style) && ('string' == typeof el.visibility){
           el.visibility = ('hidden' == el.visibility ? 'visible' :'hidden');
      }
  }
  return true;
}
  

循环访问临时数组长度并获取元素对象   在el。最后,我们检查元素obj是否存在,如果是ele对象   有一个样式和ele对象类型。在内部,如果我们切换   元素的可见性如果隐藏可见,反之亦然。