0
function globalModelToggleClicked(modname)
{
 var state = this.checked ? true : false;
 var display = this.checked ? 'inline-block' : 'none';
 var inputs = document.getElementsByTagName('input');
 var input_l = inputs.length;

 // check uncheck inputs checkboxes
 while(input_l--)
 {
   var input = inputs[input_l];
   if(input.getAttribute('class') == modname)
   {
     input.checked = state;
   }
 }

 // show/ hide all colorings
 var main = document.getElementById('main');
 var divs = main.getElementsByTagName('div');
 var divs_l = divs.length;
 var regex = new RegExp(modname);

 while(divs_l--)
 {
   var div = divs[divs_l];
   if( regex.test(div.getAttribute('class')) 
    && ( /hit/.test(div.getAttribute('class'))
         || /seqBorder/.test(div.getAttribute('class')) 
       )
     )
   {
     div.style.display = display;
   }
 }
}




function localModelToggleClicked(modname)
{

  var display = this.checked ? 'inline-block' : 'none';
  // get parent fieldset
  var fieldset = this.parentNode;
  while(fieldset.nodeName != 'FIELDSET')
  {
    fieldset = fieldset.parentNode;
  }

  // show/ hide all colorings
  var divs = fieldset.getElementsByTagName('div');
  var divs_l = divs.length;
  var regex = new RegExp(modname);


  while(divs_l--)
  {
    var div = divs[divs_l];
    if( regex.test(div.getAttribute('class'))
    && ( /hit/.test(div.getAttribute('class'))
         || /seqBorder/.test(div.getAttribute('class'))
       )
      )
    {
        div.style.display = display;
    }
 }
} 

上述两个函数切换 div 的可见性。它们在除 IE(8) 之外的所有浏览器中都能完美运行,我不知道出了什么问题。我试过调试器,它什么也没显示。这些函数位于外部脚本上,其他函数正在运行。当我在函数内部发出警报时,一切似乎都井然有序。任何人都可以帮忙吗?

4

1 回答 1

0

问题在于getAttribute('class')显然 IE 不接受这一点。所以我改用了className。在所有浏览器中都能完美运行。

于 2012-07-31T07:43:10.387 回答