Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is it expected that jQuery $('span').html() turns XHTML br tag to html syntax?

Tags:

html

jquery

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');
}
like image 324
slolife Avatar asked Sep 29 '09 06:09

slolife


2 Answers

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.

like image 146
Quentin Avatar answered Sep 29 '22 06:09

Quentin


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.

like image 44
Vladislav Rastrusny Avatar answered Sep 29 '22 07:09

Vladislav Rastrusny