Rumah > Artikel > hujung hadapan web > Penyelesaian kepada masalah bahawa pelayar IE tidak menyokong kemahiran getElementsByClassName_javascript
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; }; }