2010-12-04 2 views
6

Je veux créer HTMLElement de chaîne par javasacript, comme celui-cijavascript: créer HTMLElement de chaîne

element = createHTMLElement('<table class="list"><tr><td><a href="xxx">title</a></td></tr></table>') 
element.addEventListener(...) 
parent.appendChild(element) 

et je ne veux pas utiliser jQuery

+0

Je pense que vous devrez faire l'analyse vous-même (ou utiliser une bibliothèque pour cela.) –

+0

duplication possible de [Création d'un nouvel élément DOM à partir d'une chaîne HTML en utilisant des méthodes DOM intégrées ou prototype] (http: //stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro) –

Répondre

21

Vous pouvez créer un élément extérieur factice:

var div = document.createElement('DIV'); 

puis:

div.innerHTML = '<table class="list"><tr><td><a href="xxx">title</a></td></tr></table>' 

puis l'extraire de childNodes:

div.firstChild 

innerHTML est une extension Microsoft, mais universellement pris en charge sur tous les navigateurs modernes.

Bien sûr, vous pouvez former une fonction simple qui fait ce que vous voulez de ces extraits.

+0

Puis-je réutiliser ce div idiot –

+0

Oui, vous pouvez le réutiliser. (Le remplacement de innerHTML libèrera les enfants précédents et en instanciera de nouveaux) – EFraim

+0

J'ai l'impression que cette question est extrêmement bonne. – Lodewijk