getElementsByClassName() Keserasian dengan IE
Soalan: Cara mendapatkan semula susunan elemen dengan kelas tertentu dengan berkesan , mempertimbangkan pengehadan keserasian IE?
Jawapan:
Document.getElementsByClassName() ialah kaedah moden yang tidak disokong oleh IE. Sebaliknya, pertimbangkan pendekatan berikut:
Fungsi Tersuai (IE6 ):
Tentukan fungsi tersuai untuk meniru getElementsByClassName(). Ini melibatkan merentasi DOM dan menguji nama kelas elemen terhadap nama kelas yang disediakan:
<code class="js">function getElementsByClassName(node, className) { var a = []; var re = new RegExp('(^| )' + className + '( |$)'); var els = node.getElementsByTagName('*'); for (var i = 0, j = els.length; i < j; i++) if (re.test(els[i].className)) a.push(els[i]); return a; } // Usage: var tabs = getElementsByClassName(document.body, 'tab');</code>
querySelectorAll (IE8 ):
Jika menyokong IE8 atau ke atas adalah mencukupi , lanjutkan dokumen dan objek Element untuk menyokong querySelectorAll():
<code class="js">if (!document.getElementsByClassName) { document.getElementsByClassName = function (className) { return this.querySelectorAll('.' + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; } // Usage: var tabs = document.getElementsByClassName('tab');</code>
Pastikan anda memanggil getElementsByClassName() dengan nod yang dikehendaki sebagai hujah pertama, kerana ia bukan kaedah dokumen. Dengan melaksanakan salah satu daripada penyelesaian ini, anda boleh mendapatkan semula elemen mengikut nama kelas, memastikan keserasian dengan julat penyemak imbas yang lebih luas, termasuk IE.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Elemen mengikut Nama Kelas dalam Internet Explorer?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!