Necesito una forma de agregar HTML a un elemento contenedor sin usar innerHTML. La razón por la que no quiero usar innerHTML es porque cuando se usa así:
element.innerHTML += htmldata
Funciona reemplazando todo el html primero antes de agregar el viejo html más el nuevo html. Esto no es bueno porque restablece los medios dinámicos, como los videos flash incrustados ...
Podría hacerlo de esta manera, lo que funciona:
var e = document.createElement('span');
e.innerHTML = htmldata;
element.appendChild(e);
Sin embargo, el problema con esa forma es que ahora hay una etiqueta de extensión adicional en el documento que no quiero.
¿Cómo se puede hacer esto entonces? ¡Gracias!
javascript
html
innerhtml
Beto
fuente
fuente
Respuestas:
Para dar una alternativa (ya que el uso
DocumentFragment
no parece funcionar): puede simularlo iterando sobre los elementos secundarios del nodo recién generado y solo agregue esos.fuente
e.firstChild
. Más bien, verifica sie
tiene un hijo y, en caso afirmativo, mueva ese hijo al elemento.Me sorprende que ninguna de las respuestas mencionara el
insertAdjacentHTML()
método. Compruébalo aquí . El primer parámetro es donde desea que se anexe la cadena y tome ("beforebegin", "afterbegin", "beforeend", "afterend"). En la situación del OP, usarías "beforeend". El segundo parámetro es solo la cadena html.Uso básico:
fuente
Uncaught TypeError: undefined is not a function
!Alnafie tiene una gran respuesta para esta pregunta. Quería dar un ejemplo de su código de referencia:
Esperemos que esto sea útil para otros.
fuente
asigne los datos para div con el símbolo "+ =", puede agregar datos, incluidos datos html anteriores
fuente
element.innerHTML += data
.Esto es para lo que
DocumentFragment
estaba destinado.document.createDocumentFragment
,.childNodes
fuente
(a)
? ¿Es eso un error tipográfico?Cómo pescar y al usar un código estricto. Hay dos funciones de requisitos previos necesarias en la parte inferior de esta publicación.
Agregue varios elementos (el espacio de nombres solo debe estar en el elemento principal):
Código dinámico reutilizable:
fuente