Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

432
Vistas
Cambiar el color de fondo del texto en una página web en JavaScript (cuando el ID o el nombre del elemento no está disponible)

Lo que quiero lograr es que una vez que se cargue una página web, encuentre algún texto en ella y resalte el texto. Mi código lo que he escrito hasta ahora es el siguiente.

Primero hago coincidir el contenido de textContent usando una expresión regular (¿Por qué estoy usando este enfoque porque no tengo la ID o el nombre para el div donde está presente el contenido de textContent , por lo tanto, no puedo ir a getElementsByName() o getElementById() ) . Para verificar si el texto existe, primero comparo su longitud y luego procedo a resaltarlo.

El texto que encuentro está en el índice 0 de la variable de text . No puedo acceder al método backgroundColor() , por eso se ha comentado por ahora. Podía acceder a fontcolor() pero ni siquiera parecía funcionar.

Soy nuevo en JS, por lo que agradecería mucho alguna dirección.

  • Me gustaría saber por qué fontcolor() no funciona aunque puedo acceder a él.
  • ¿Cuál sería el mejor enfoque para resolver esto ya que no puedo acceder a backgroundColor() ?
 (function highlightText(){ let text = document.body.textContent.match(/abcxyz/); if (text[0].length == 6) { text[0].fontcolor('yellow'); //text[0].backgroundColor('yellow'); console.log(text[0]); //prints abcxyz return text[0]; } return null; })()

SOLUCIÓN: El enfoque basado en la solución proporcionada por @forlen:

Lo que hice fue recorrer todos los nodos, si el contenido de texto coincide con la expresión regular, luego los textContent en una matriz y, como sabía que lo que quería era el elemento raíz, obtuve el último elemento de la matriz y cambié su color de backgroundColor .

 (function highlightText() { let allNodes = document.body.getElementsByTagName("*"); var arr= []; for (let node of allNodes) { if (node.textContent.match(/abcxyz/)) { arr.push(node); } } text = arr[(arr.length)-2]; text.style.backgroundColor = "yellow"; })();
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Recomiendo recorrer todos los nodos en el cuerpo y cambiar el estilo de esta manera:

 (function highlightText() { let allNodes = document.body.getElementsByTagName("*"); for (let node of allNodes) { if (node.textContent === "abcxyz") { node.style.color = "yellow"; } } })();
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda