tags:

views:

419

answers:

3

If I have a span tag like this:

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

And I call this jQuery function:

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

html is set to:

 Hi<br>SecondLine

Now, I realize the name of the function is html() and not xhtml(). But is this expected behavior? Can I count on it, or do I alway need to check for a xhtml br tag and an html br tag, in say, this example:

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

It doesn't. It just modifies the browser DOM.

It is up to the browser to serialise the DOM to HTML or XHTML as it desires when using innerHTML. Different browsers act differently.

David Dorward
+2  A: 

All browsers normalize HTML code while building their DOM tree. So, javascript gains access to already normalized DOM. With all tags properly closed and such.

FractalizeR
+2  A: 

You aren't actually using XML, so it makes sense that the serialization doesn't use the XML syntax. See also Ian Hickson's essay about sending XHTML as HTML.

Ms2ger