Rumah  >  Artikel  >  hujung hadapan web  >  Penyelesaian kepada masalah bahawa pelayar IE tidak menyokong kemahiran getElementsByClassName_javascript

Penyelesaian kepada masalah bahawa pelayar IE tidak menyokong kemahiran getElementsByClassName_javascript

WBOY
WBOYasal
2016-05-16 16:38:241212semak imbas

Kaedah getElementsByClassName telah ditambahkan pada DOM3, tetapi ia tidak disokong oleh versi lain kecuali IE9 dan 10. Ini menyakitkan!
Penyelesaian semasa adalah untuk menentukan sama ada penyemak imbas menyokong kaedah ini. Jika ia menyokongnya, biarkan sahaja jika ia tidak menyokongnya, tambahkan kaedah getElementsByClassName pada objek dokumen ini perlu pergi ke sana tanpa mengira sama ada terdapat fungsi asli atau tidak.

Sesetengah orang di Internet mentakrifkan secara langsung fungsi getElementsByClassName, tetapi dalam kes ini, semua penggunaan document.getElementsByClassName dalam kod perlu ditulis semula ke getElementsByClassName. Ia agak menyusahkan dan tidak universal.

Kaedah berikut menyokong penulisan dokumen dengan sempurna:

if(!document.getElementsByClassName){
  document.getElementsByClassName = function(className, element){
    var children = (element || document).getElementsByTagName('*');
    var elements = new Array();
    for (var i=0; i<children.length; i++){
      var child = children[i];
      var classNames = child.className.split(' ');
      for (var j=0; j<classNames.length; j++){
        if (classNames[j] == className){ 
          elements.push(child);
          break;
        }
      }
    } 
    return elements;
  };
}
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn