innerHTML no funciona como se esperaba

He buscado por todas partes una solución a este problema que no puedo explicar.

aquí está el problema, cada vez que uso el HTML interno de javascript para inyectar la siguiente cadena:

ejemplo:

var s = "<div><p><div><p></p></div></p></div>"

document.getElementById("id").innerHTML = s;

En Firefox, usando firebug, miro el marcado más reciente y veo <div><p></p><div><p></p></div></div>

Alguien sabe que ocurre esto?

preguntado el 21 de mayo de 12 a las 18:05

no puedes poner un dentro de una -

1 Respuestas

No puedes anidar p or div dentro de otro p. cerrando el p es cómo el navegador intenta hacer que su HTML no válido sea válido.

contestado el 21 de mayo de 12 a las 18:05

De hecho dejando el <p> unclosed es un HTML válido. el abierto <p> se cerrará antes del siguiente elemento de bloque. No es válido en XHTML. - rdleal

Pero el </p> sin una abertura <p> es HTML no válido. Claramente, la intención aquí no es una <p> pero una <p> que contiene un div y p - Francisco Ávila

Sí, </p> sin una abertura <p> es HTML no válido. ignorando lo ultimo </p> es el intento del navegador de hacer que un HTML inválido sea válido. Cerrando la primera <p> es solo una regla SGML. - rdleal

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.