Wie sich herausstellt, gibt es nichts falsch mit dem Beispiel-Code ich in der Frage zur Verfügung gestellt - es funktioniert in IE6 gut. Die Frage, die ich war mit Blick auf ist, dass ich auch falsch im Konstruktor eine Klasse für das Element
angibt, aber weggelassen, dass aus meinem Beispiel.
Der „echte“ Code war wie folgt und ist falsch:
var tableProto = new Element('table', { class:'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');
Das funktioniert richtig in Firefox, aber nicht in IE6, weil es falsch .
Der richtige Weg Attribute zu einem Element über diesen Konstruktor hinzuzufügen ist Strings bietet, nicht nur Attributnamen. Der folgende Code funktioniert in beiden Browsern:
var tableProto = new Element('table', { 'class':'hide-on-screen'} ).update('<thead><tr><th>Situation Task</th><th>Action</th><th>Result</th></tr></thead><tbody><tr><td>a</td><td>b</td><td>c</td></tr></tbody>');
Es ist ein Fehler aufgrund von „Klasse“ in JavaScript ein reserviertes Wort ist. Doh!
Lass dir das eine Lektion für diejenigen, die nicht liefern ihre Ist Code!