Atendiendo a la finalidad tenía esta idea:
Código HTML:
Ver original<!DOCTYPE html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> .clase1{color: red;}
.clase2{color: blue;}
.clase3{color: lime;}
<script type="text/javascript"> window.onload = function() {
var eDiv = document.getElementById('textoid');
var texto = '';
var clase = '';
for (var i = 0; i < eDiv.childNodes.length; i++) {
// span
if (eDiv.childNodes[i].nodeName === 'SPAN') {
clase = eDiv.childNodes[i].className;
cadena = eDiv.childNodes[i].innerHTML;
texto += '<span class=' + clase + '>' + cadena + '
</span>';
}
// Lo que no sea span
if (eDiv.childNodes[i].nodeName !== 'SPAN') {
cadena = eDiv.childNodes[i].nodeValue;
texto += cadena.replace(/texto/, '
<span class="clase3">texto
</span>');
}
}
document.getElementById("rst").innerHTML = texto;
}
Hola, este texto es una prueba,
<span class="clase1"> la prueba consiste
</span> en reemplazar
<span class="clase2">este texto.
</span> Por otro texto.