Вместо того, чтобы "разбирать" html, вы можете работать непосредственно с dom.
Если у вас есть строка html для начала, вы можете создать временный узел dom и назначить htmlна это:
var tmp = document.createElement("DIV");
tmp.innerHTML = myHtml;
Затем вы можете перебирать дерево dom и делать с ним что-нибудь:
var result = doStuff(tmp);
, где "doStuff ()" определен как таковой (обратите внимание на рекурсию):
function doStuff (elem) {
var string = '';
switch (elem.nodeType) {
case 1: // ELEMENT_NODE
for (var i=0; i<elem.childNodes.length; i++)
string += doStuff(elem.childNodes[i]);
break;
case 3: //TEXT_NODE
string += elem.nodeValue;
break;
}
return string;
}
Вы можете делать там все, что вам нужно ... возможно, добавляя пробелы и тому подобное между отдельными строками.
Это легко построить и не относится к jquery.... просто чистый javascript Дом-ходячий материал.Может показаться немного многословным для такой простой проблемы, как ваша, но техника мощная и легко увидеть, что происходит.