¡Dios mío, tantas respuestas!
para obtener sólo el texto de un elemento, la forma más sencilla es utilizar textContent o, si no se admite, innerText. Todos los navegadores en uso soportan uno u otro (tal vez ambos). También se puede utilizar una expresión regular (indexOf funciona también, una expresión regular es sólo una opción) así:
var re = new RegExp('*' + word + '*');
if (re.test(div[i].innerText || div[i].textContent)) {
// div[i] contains /*word*/
}
Una solución más robusta sería como:
function getText(el) {
if (typeof el.textContent == 'string') {
return el.textContent;
}
if (typeof el.innerText == 'string') {
return el.innerText;
}
}
var re = new RegExp('*' + word + '*');
if (re.test(getText(div[i]))) {
// div[i] contains /*word*/
}
Reemplazando // algo con divs [i] .style.background = "red"; sigue resaltando toda la página. ¿Cómo obtener una referencia para el div que contiene "palabra"? Por supuesto, la pregunta no pide esa profundidad, sino que para completar/curiosidad sería interesante. – TenLeftFingers