Keserasian document.getElementsByClassName dalam IE
Internet Explorer membentangkan cabaran apabila cuba mendapatkan tatasusunan elemen dengan kelas tertentu menggunakan dokumen .getElementsByClassName(). Untuk mengatasi had ini, penyelesaian tersuai diperlukan.
Kaedah Jonathan Snook
Satu pendekatan untuk meniru document.getElementsByClassName() dalam IE ialah menggunakan fungsi Jonathan Snook, yang lelaran melalui semua elemen dalam nod menggunakan getElementsByTagName(*) dan menapisnya berdasarkan kehadiran kelas yang dikehendaki.
Ketidakserasian IE
Walaupun melaksanakan penyelesaian Snook, ralat mungkin masih berlaku dalam IE yang menyatakan, "Objek tidak menyokong harta atau kaedah ini." Ini kerana getElementsByClassName() bukan kaedah langsung objek dokumen dalam IE.
Pelaksanaan Dibetulkan
Pelaksanaan fungsi Snook yang betul memerlukan penentuan nod sasaran secara eksplisit :
var tabs = getElementsByClassName(document.body, 'tab');
IE8 Sokongan
Untuk IE8 dan versi yang lebih baru, pendekatan yang dipermudahkan boleh digunakan:
if (!document.getElementsByClassName) { document.getElementsByClassName = function(className) { return this.querySelectorAll("." + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; }
Coretan kod ini mentakrifkan getElementsByClassName() sebagai kaedah objek dokumen dan juga menjadikannya tersedia untuk elemen individu melalui Element.prototype.getElementsByClassName().
Penggunaan
Setelah dilaksanakan, kaedah getElementsByClassName() boleh digunakan seperti berikut:
var tabs = document.getElementsByClassName('tab');
Atas ialah kandungan terperinci Bagaimana untuk Menggunakan getElementsByClassName() dalam Internet Explorer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!