https://jsfiddle.net/s69v7xvk/
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<div>
Lorem Ipsum - это текст-"рыба", часто используемый в печати и вэб-дизайне. Lorem Ipsum является стандартной "рыбой" для текстов на латинице с начала XVI века. В то время некий безымянный печатник создал большую коллекцию размеров и форм шрифтов, используя Lorem Ipsum для распечатки образцов. Lorem Ipsum не только <div>успешно пережил без заметных изменений пять веков, но и перешагнул в электронный дизайн. Его популяризации в новое время послужили публикация листов Letraset с образцами Lorem Ipsum в 60-х годах и, в более недавнее время,</div> программы электронной вёрстки типа Aldus PageMaker, в шаблонах которых используется Lorem Ipsum.
</div>
<script>
$(function(){
var find_string='е';
$('*:contains("'+find_string+'")').filter(function(){
var $t=$(this).clone();
$t.find('>*').remove();
if($t.text().indexOf(find_string)==-1)
return false;
$(this).html(this.innerHTML.replace(new RegExp('('+find_string+')','gm'),'<span style="color:red;">$1</span>'));
});
});
</script>
Работает, но мне не нравится алгоритм.
Возможно можно работать сразу с контентом document.body и избавится от нахождения прямого родителя текста, который будет изменен.
+ нужно усложнить регулярку, сейчас она может модифицировать и html код, что приведен к его инвалидности.