2012-03-09 7 views

Respuesta

1

usted tiene que utilizar un operador de comparación no asignar una variable.

if (divs[i].text == '*word*'){ 

Recomendaría utilizar indexOf.

if (divs[i].text.indexOf('*word*') != -1){ 
29

utilice el indexOf función

if(divs[i].innerHTML.indexOf("word") !== -1) { 
    // something 
} 
+0

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

0

el uso de expresiones regulares:

if (divs[i].textContent.match (/\bword\b/)){ 
    //do something 
} 

@RobG me recuerdan de manera

if (divs[i].innerHTML.match (/\bword\b/)){ 
    //do something 
} 

= 3 =

+0

No funcionará en buscadores que no admitan la propiedad W3C DOM * textContent *. – RobG

1

Además de lo que otros dijeron sobre el uso de la función .indexOf(), me gustaría decir que .text no es una propiedad de nodo div. Usuario .innerHTML

if (divs[i].innerHTML.indexOf('word') > -1){} 
+0

que coincidirá también con el contenido de la etiqueta HTML (es decir, nombres de etiquetas y nombres y valores de atributos). – RobG

+0

No se especificó qué tipo de contenido estaba buscando. –

+1

Podría estar equivocado, pero creo que está bastante claro que el OP estaba buscando hacer coincidir el contenido del texto, no el marcado. – RobG

1

¡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*/ 
} 
3
if (document.getElementById('divId').innerHTML.indexOf("word") != -1) { } 
2

Uso includes():

node.textContent.includes('Some text'); 
Cuestiones relacionadas