setAttribute und Internet Explorer



Wenn Sie die JavaScript-Methode setAttribute verwenden, um die DOM zu manipulieren, sollte es möglich sein, alle Attribute im DOM zu jedem Element hinzuzufügen. Dies ist jedoch nicht der Fall mit dem Internet Explorer 7 und älteren IE-Browser, wo Sie nicht den Stil-Attribut oder Klasse Attribut verwenden können.

Die alten IE Gründe nicht in der Lage zu sein, die Klasse-Attribut auf DOM-Elemente durch setAttribute in IE 6 und IE 7 hinzuzufügen, war diese Klasse ein reserviertes Wort in JavaScript ist.

Hinzufügen von Klassenattribut in Internet Explorer

Wenn Sie ein Klassenattribut in IE6 0g IE7 hinzufügen können statt:

element.setAttribute ( ‚classname‘, ‚myClass‘);

Diese Lösung ist jedoch zusätzliche Arbeit, da Sie dann die Browser zu erkennen, die Ihre Website besuchen wird, wie oben nicht sinnvoll, in entweder Firefox oder IE8. Dort finden Sie ein Attribut namens ‚classname‘ und der Wert bekommen ‚myClass‘.

Stattdessen können Sie verwenden:

element.className = ‚myClass‘;

Die Broschüren Klassenattribut auf das Element, und während es zu benennen. Und es funktioniert Cross-Browser.

Style-Attribut in Internet Explorer

Ich weiß nicht, die Gründe, warum Sie nicht den Stil-Attribut verwenden können. Aber wenn Sie benötigen einen Inline-Stil mit nativer JavaScript hinzufügen, können Sie stattdessen .style Syntax verwenden:

element.style.cssText = styleText

oder genauer gesagt:

element.style.backgroundColor = „# 333333“;

Dnne Methode vorker auch in allen Browsern. Sie können hier eine Diskussion über das Thema finden:

http://www.quirksmode.org/bugreports/archives/2005/03/setAttribute_does_not_work_in_IE_when_used_with_th.html

In der Klasse und fügen Sie Stil in jQuery

Wenn Sie eine JavaScript-Bibliothek verwenden, wird dies natürlich Griff Browser Unterschiede für Sie. In jQuery verwendet .addClass ( „meine Klasse“) class’es und CSS-Methode CSS- ( „Anzeige“, „none“) hinzuzufügen Stile hinzuzufügen.

Warum dann kämpfen mit es auch, wenn zum Beispiel. jQuery behebt es so einfach? Wenn Sie mit nur ein oder zwei Methoden von jQuery können viel Kilobyte speichern und nicht zuletzt eine zusätzliche HTTP-Anforderung durch die Dinge selbst zu tun. Und es ist auch viel mehr Spaß.