2012-06-25 5 views
-1

Possible en double:
getElementByClass().setAttribute doesn't workRéglage du nom d'attribut dynamique

Pourquoi:

document.getElementsByClassName('cke_source').setAttribute('name', "mymessage") 

EXPEDITEUR:

TypeError: Object #<NodeList> has no method 'setAttribute' 

document.getElementsByClassName('cke_source') renvoie correctement l'objet.

  • Pas de jQuery s'il vous plaît.
+2

'console.log (document.getElementsByClassName ('cke_source'));' PS: selon le message d'erreur que vous obtenez 'NodeList', pas un noeud – zerkms

Répondre

5

document.getElementsByClassName retournera une liste de nœuds (comme un tableau) d'éléments. Donc, vous devez le traiter comme un tableau. Essayez ceci si vous avez un seul élément:

document.getElementsByClassName('cke_source')[0].setAttribute('name', "mymessage") 
5

getElementsByClassName vous donne de nouveau une collection d'articles, pas un seul élément.

var pColl = document.getElementsByClassName('cke_source'); 
for (var ii=0; ii< pColl.length; ii++) 
{ 
    pColl[ii].setAttribute('name', 'foo'); 
} 
+1

Juste de curiousty. Pourquoi «ii» et non «i» comme variable? Est-ce une convention partout ou quelque chose en particulier? – Jashwant

+1

C'est une convention que beaucoup de gens utilisent. La pensée est que lorsque vous avez besoin de suivre le code ... faire une recherche de «je» est assez inutile. :) –

+0

Oui. Belle pensée;) – Jashwant

Questions connexes