Heim >Web-Frontend >js-Tutorial >Wie kann ich „document.getElementsByClassName' im Internet Explorer verwenden?
Beim Versuch, ein Elementarray mit einer bestimmten Klasse mithilfe von document.getElementsByClassName abzurufen, stößt IE auf Kompatibilitätsprobleme. Diese Methode wird vom IE nicht direkt unterstützt.
Jonathan Snooks Methode:
Die Verwendung der getElementsByClassName-Funktion von Jonathan Snook, die Elemente basierend auf einer Übereinstimmung mit regulären Ausdrücken sucht, kann zu Folgendem führen: Fehler im IE. Dies liegt daran, dass die Funktion nicht als Dokumentmethode definiert ist.
Lösung:
Um die Funktion mit dem IE kompatibel zu machen, sollte sie als separate Funktion aufgerufen werden ohne Bezugnahme auf das Dokument:
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; } var tabs = getElementsByClassName(document.body,'tab');
IE8-Kompatibilität:
Für IE8 und höher kann ein alternativer Ansatz verwendet werden:
if(!document.getElementsByClassName) { document.getElementsByClassName = function(className) { return this.querySelectorAll("." + className); }; Element.prototype.getElementsByClassName = document.getElementsByClassName; } var tabs = document.getElementsByClassName('tab');
Dieser Ansatz nutzt die in IE8 unterstützte querySelectorAll-Methode, die ähnlich wie getElementsByClassName funktioniert.
Das obige ist der detaillierte Inhalt vonWie kann ich „document.getElementsByClassName' im Internet Explorer verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!