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;
    }
 }
} 

上記の 2 つの関数は、div の可視性を切り替えます。IE(8) を除くすべてのブラウザーで完全に動作し、何が問題なのかわかりません。デバッガーを試しましたが、何も表示されません。関数は、機能している他の関数を含む外部スクリプトにあります。関数内で警告すると、すべてが正常に見えます。誰でも助けることができますか?

4

1 に答える 1

0

問題はgetAttribute('class')明らかに IE がこれを受け入れないことにありました。だから私はclassName代わりにを使用します。これはすべてのブラウザで完全に機能します。

于 2012-07-31T07:43:10.387 に答える