Cómo obtener elemento por texto interno

Resuelto Anton Kandybo asked hace 14 años • 17 respuestas

Cómo obtener una etiqueta en una página html, si sé qué etiqueta de texto contiene. P.ej:

<a ...>SearchingText</a>
Anton Kandybo avatar Sep 28 '10 20:09 Anton Kandybo
Aceptado

Podrías usar XPath para lograr esto.

var xpath = "//a[text()='SearchingText']";
var matchingElement = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;

También puedes buscar un elemento que contenga texto usando este xpath:

var xpath = "//a[contains(text(),'Searching')]";
carlin.scott avatar Mar 26 '2015 21:03 carlin.scott

Tendrás que atravesar a mano.

var aTags = document.getElementsByTagName("a");
var searchText = "SearchingText";
var found;

for (var i = 0; i < aTags.length; i++) {
  if (aTags[i].textContent == searchText) {
    found = aTags[i];
    break;
  }
}

// Use `found`.
August Lilleaas avatar Sep 28 '2010 13:09 August Lilleaas