2010-05-21 6 views
0

Est-il possible de modifier le nom de noeud de l'élément dans GWT? Je veux dire quelque chose comme ceci:Modifier le nom de noeud de l'élément?

HTML h = new HTML(); 
h.getElement().setNodeName("mydiv") 

alors qu'il n'y a pas de méthode setNodeName() pour Element.

Je voudrais acquérir <mydiv>some contents</mydiv> au lieu de balise par défaut <div>some contents</div>

Merci pour tout conseils.

Répondre

2

Vous ne pouvez pas modifier le nom de noeud de l'élément du widget HTML. Cependant, vous pouvez créer votre propre tag avec Document.get().createElement("mydiv"), et l'utiliser pour créer un nouveau Widget en étendant Composite. Cependant, je ne suis pas sûr de savoir pourquoi vous voulez faire cela, car l'ajout de nouvelles balises au DOM et l'extension de HTML ne sonnent pas comme quelque chose que vous devriez vouloir. La définition du contenu dans cette balise n'est pas possible via des méthodes telles que innerText car elles ne sont disponibles que pour les balises valides.

1

changer le nom de l'étiquette tout en gardant le contenu et les attributs

function changeTagName(elm,new_tag_name){ 
    var newElm = document.createElement(new_tag_name) 
    var atr = elm.attributes;  
    for(var i=0;i<atr.length;i++){ // copy all atributtes 
    newElm.setAttribute(atr[i].name,atr[i].value) 
    } 
    document.body.insertBefore(newElm,elm) 
    newElm.innerHTML=elm.innerHTML; //copy the content 
    elm.parentNode.removeChild(elm) // remove original 
} 

par exemple:

<span id='sp1' class='cl1 cl2'> some t e x t with (\n)   gaps .... and etc</span> 

changeTagName(document.getElementById('sp1'),'pre'); 
Questions connexes