Quiero obtener el valor de una etiqueta fuerte con un texto anterior dentro de un párrafo usando javascript simple. El problema es que ni siquiera hay un elemento de identificación o clase para este registro, por lo que no sé cómo atravesarlo. Tengo el siguiente html para atravesar:
<div class="panel-body"> <p>Short Title: <strong>Strengthening Compliance With Occupational Safety And Health Standards And Providing Penalties For Violations Thereof</strong> ...OMITTED for BREVITY.. <br> Date Read: <strong>2016-07-26</strong> ... More p elements same the same pattern as above: A Header (That I'm interested in to be able to identify what the text is about: <strong>The Text I am interested in</strong> ... </div>Estoy probando evaluar, pero parece que no puedo obtener lo que necesito:
var text = document.evaluate("//p[contains(., 'Short Title:')]/firstElementChild", document, null, XPathResult.ANY_TYPE, null ); console.log(text);ACTUALIZACIÓN: parece que puedo atravesar mi documento con el siguiente código a continuación:
var text = document.evaluate("//p[contains(., 'Short Title:')]/childNodes", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null ); if (text.singleNodeValue !== null) { var Details = text.singleNodeValue.textContent; } console.log(Details);Pero el problema es que también obtengo todo el otro contenido de texto dentro del div, así:
Short Title: Strengthening Compliance With Occupational Safety And Health Standards And Providing Penalties For Violations ThereofDate Read: 2016-07-26ACTUALIZACIÓN 2: Aparentemente, el documento html que estoy tratando de recorrer dentro del elemento p tiene más encabezados que solo están separados por la etiqueta de ruptura "br" de esta manera:
<p>Short Title: <strong>The Short Title</strong> <br> <strong>Principal Author/s:</strong> Name of a lot of authors. <br> Date Read: <strong>2016-07-26</strong>Esa podría ser la razón por la que mi primer código javascript arroja todo el contenido de texto del elemento p.
Simplemente podría usar querySelector
const text = document.querySelector('p > strong').innerText