2010-12-04 15 views
6

quiero crear HTMLElement de cadena por javasacript, como estejavascript: crear HTMLElement de cadena

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

y yo no quiero usar jQuery

+0

Creo que tendrá que hacer el análisis usted mismo (o usar alguna biblioteca para él) –

+0

posible duplicado de [Creación de un nuevo elemento DOM a partir de una cadena HTML utilizando métodos DOM incorporados o prototipo] (http: //stackoverflow.com/questions/494143/creating-a-new-dom-element-from-an-html-string-using-built-in-dom-methods-or-pro) –

Respuesta

21

Puede crear algún elemento externo dummy:

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

y luego:

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

y luego extraerlo de childNodes:

div.firstChild 

innerHTML es una extensión de Microsoft, pero uno universalmente compatibles con todos los navegadores modernos.

Por supuesto, puede formar una función simple que hace lo que quiere de estos fragmentos.

+0

puedo reutilizar este dummy div –

+0

Sí, puedes reutilizarlo. (reemplazar innerHTML liberará a los hijos anteriores e instaurará los nuevos) – EFraim

+0

De alguna manera siento que esta pregunta de comentario es extremadamente buena. – Lodewijk

Cuestiones relacionadas