var span = $('<span class="period">°</span>').get(0);
$('p, p *').each(function (index,element) {
$.each(element.childNodes, function (index,node) {
if (node.nodeType == 3) {
$.each(node.nodeValue.split('.'), function (index,fragment) {
if ( index > 0 ) {
element.insertBefore(span.cloneNode(true),node);
}
element.insertBefore(document.createTextNode(fragment),node);
});
element.removeChild(node);
}
});
});
решит проблему. Основная идея состоит в том, чтобы разбить содержимое каждого текстового узла в абзаце на «.» символ, превратить каждый фрагмент в новый текстовый узел, а затем собрать новые текстовые узлы с элементами span, содержащими символы степени между ними.