2009-09-29 7 views
6

Si tengo una etiqueta span así:

<span>Hi<br />SecondLine</span> 

Y llamo esta función jQuery:

var html = $('span').html(); 

html se establece en:

Hi<br>SecondLine 

Ahora, comprendo el nombre de la función es html() y no xhtml(). Pero, ¿es este comportamiento esperado? ¿Puedo contar con ella, o tengo que comprobar todos los días para una etiqueta XHTML ancho y una etiqueta br html, digamos, en este ejemplo:

function br2nl(text) { 
    return text.replace(/<br \/>/gi, '\n').replace(/<br>/gi, '\n'); 
} 
+2

Su documento probablemente se maneje como HTML y no como XHTML. – Gumbo

+0

Se ha agregado la cláusula insensitve de mayúsculas y minúsculas para regex ya que Firefox devuelve minúsculas y IE devuelve mayúsculas – slolife

Respuesta

9

No lo hace. Simplemente modifica el DOM del navegador.

Depende del navegador serializar el DOM a HTML o XHTML como desee al usar innerHTML. Los diferentes navegadores actúan de manera diferente.

3

Todos los navegadores normalizan el código HTML mientras construyen su árbol DOM. Por lo tanto, javascript obtiene acceso a DOM ya normalizado. Con todas las etiquetas debidamente cerradas y tal.

Cuestiones relacionadas