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

235
Vistas
¿Por qué .includes devuelve falso cuando el texto coincidente es claramente visible en la consola?

Estoy tratando de modificar dinámicamente una cadena dentro de un texto generado por RoboHelp 2017 de Adobe en un sistema de ayuda HTML5.

Estoy tratando de ubicar si el texto "En este tema" existe en el párrafo que sigue a una etiqueta de objeto donde la etiqueta de objeto tiene una ID de MapCtrl.

Aquí hay un fragmento del HTML en cuestión, copiado del Inspector de Firefox:

 <object id="MapCtrl" classid="CLSID:A8ECFBF5-08CC-4065-BD74-0FAD1EA61317" data-rhtags="1" class="" width="1" height="1"> </object> <p style="font-family:Arial;font-size:12pt;font-weight: normal;font-style: normal;text-decoration: none;" data-rhtags="1" class="" align="left">In&nbsp;this&nbsp;Topic&nbsp;<a class="dropspot" href="javascript:TextPopup(this)" id="MTHotSpot46267"><span class="MTText" style="display: none;">Show</span><span class="MTText">Hide</span></a></p>

Puedo manejar el texto deseado con este código JS:

 const minitoc = document.querySelector('#MapCtrl + p'); const text = minitoc.textContent; console.log (typeof text); console.log(text); console.log(text.includes('In this Topic')); console.log(text.indexOf('In this Topic'));

En mi consola, puedo verificar que mi variable de texto es de hecho un tipo de cadena. También puedo ver visualmente en la consola que "En este tema" existe en la salida del registro. Sin embargo, mi método .includes siempre devuelve falso. (.indexOf tampoco funciona)

Salida de consola

Pensé que tal vez estaba fallando debido a la &nbsp; códigos agregados en esa cadena en el HTML, pero también probé esta variación, pero tampoco funcionó:

 console.log(text.includes('In&nbsp;this&nbsp;Topic'));

Por extraño que parezca, puede encontrar palabras individuales muy bien. Por ejemplo, esto devuelve verdadero:

 console.log(text.includes('Topic'));

Pero cada vez que trato de agregar un espacio para buscar la frase completa, "En este tema", devuelve falso.

Busqué en línea una solución y estudié la sección de MDN sobre el método .includes . pero no puedo entender por qué devuelve falso.

Gracias de antemano por su ayuda.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

El método includes busca el texto en la cadena.

No analiza ningún HTML.

Si la cadena incluye un espacio de no separación, entonces necesita un espacio de no separación real ( ) o la secuencia de escape de JavaScript para uno ( \xa0 ). No puede usar una entidad HTML ( &nbsp; ) o un espacio regular ( ).

about 4 years ago · Juan Pablo Isaza Denunciar

0

Sería interesante ver qué sucede si itera sobre el texto para imprimir los valores Unicode de los caracteres, tal vez eso conduzca a información valiosa

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt

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