Вы можете использовать методы dom для обработки каждого текстового узла.
Этот метод принимает родительский узел для первого аргумента и перебирает все его дочерние узлы,
обработка текстовых узлов функцией, переданной в качестве второго аргумента.
Функция, где вы будете работать с данными тестового узла,
например, чтобы найти, заменить, удалить или обернуть найденный текст в выделенный интервал.
Вы можете вызвать функцию только с первым аргументом, и она вернет массив
текстовые узлы, и вы можете использовать этот массив для управления текстом
элементы массива в этом случае являются узлами и имеют данные, родителей и братьев и сестер.
document.deepText= function(hoo, fun){
var A= [], tem;
if(hoo){
hoo= hoo.firstChild;
while(hoo!= null){
if(hoo.nodeType== 3){
if(fun){
if((tem= fun(hoo))!== undefined){
A[A.length]= tem;
}
}
else A[A.length]= hoo;
}
else A= A.concat(arguments.callee(hoo, fun));
hoo= hoo.nextSibling;
}
}
return A;
}
// контрольный пример
function ucwords(pa, rx){
var f= function(node){
var t= node.data;
if(t && t.search(rx)!=-1){
node.data= t.replace(rx,function(w){return w.toUpperCase()});
return node;
}
return undefined;
}
return document.deepText(pa, f);
}
ucwords (document.body, / \ bspan \ б / мкг)