Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

436
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!