2013-09-27 2 views
0

J'essaye de créer un nouvel élément et d'ajouter une classe pour cet élément.Prototype.js retourne className au lieu de class dans ie9

new Element('div',{'class':'name'}); 

Exemple D'autres navigateurs retourne

<div class="name"></div> 

IE9 retourne

<div className="name"></div> 

Comment nous pouvons résoudre ce problème dans prototype.js

+1

Comment créer le nouvel élément et ajouter une classe à elle? – Thilo

+0

J'ai créé un nouvel élément sous le format 'new Element ('div', {'class': 'nom'});' –

+0

Je n'ai pas pu répliquer votre problème. 'className' est la propriété de l'objet qui contient les classes appliquées à un élément de l'objet Element - est-ce que vous confondez le 2? –

Répondre

0

remplacer
new Element('div',{'class':'name'}); 

avec

var mydiv = new Element('div'); 
mydiv.addClassName('name'); 
+0

ils sont égaux, le constructeur d'élément fait la même chose dans les coulisses lors de la création de l'élément –

+0

L'avez-vous essayé? Selon plusieurs sources, ils ne sont pas égaux et cela résout certains problèmes d'IE. – Reeno

0

La version que vous utilisez est buggy IE9 (n'avez pas testé les autres versions de IE, ni d'autres versions de prototype, sauf ceux ci-dessous). Je vous conseille de mettre à jour Prototype. Testez ceci dans la console (outils F12):

Version 1.7: 
    (new Element('div', {className: 'buggy'})).outerHTML 
     returns "<div class="buggy"></div>" 

    (new Element('div', {class: 'buggy'})).outerHTML 
     returns "<div class="buggy"></div>" 

Version 1.6.0.3: 
    (new Element('div', {className: 'buggy'})).outerHTML 
     returns "<div className="buggy"></div>" 

    (new Element('div', {class: 'buggy'})).outerHTML 
     returns "<div className="buggy"></div>" 

(Désolé pour la réponse tardive, je viens d'avoir à déboguer ce IE9)

Questions connexes