Jak zdobyć tag na stronie html, jeśli wiem, co zawiera tag tekstowy. Na przykład:
<a ...>SearchingText</a>
javascript
jquery
innertext
Anton Kandybo
źródło
źródło
Odpowiedzi:
Będziesz musiał przejść ręcznie.
źródło
i < il
? Co to robi?Aby to osiągnąć, możesz użyć xpath
Możesz również wyszukać element zawierający tekst, używając tej ścieżki xpath:
źródło
Document.evaluate()
się, że nie jest to oczekiwane w przeglądarce IEvar xpath = "//a[text()='SearchingText']";
to nie działa, alevar xpath = "//a[contains(text(),'Searching')]";
to działa. Zwróć uwagę na wykluczony znak, taki jak \ '\'.Korzystając z najnowocześniejszej obecnie dostępnej składni, można to zrobić bardzo czysto w następujący sposób:
Lub z osobnym filtrem:
Oczywiście starsze przeglądarki tego nie obsługują, ale możesz użyć transpilera, jeśli potrzebna jest starsza obsługa.
źródło
Możesz użyć selektora jQuery : zawiera ()
źródło
Error: <![EX[["Tried to get element with id of \"%s\" but it is not present on the page","a:contains('SearchingText')"]]]> TAAL[1]
chociaż mam w sobie elementy z "SearchingText".Oczywiście nieco prostszym sposobem jest nadal:
Bibliografia:
Array.prototype.filter()
.Array.prototype.forEach()
.Array.prototype.slice()
.assessment ? ifTrue : ifFalse
Operator warunkowy („trójskładnikowy” ) .Function.prototype.call()
.typeof
operator .źródło
Podejście funkcjonalne. Zwraca tablicę wszystkich dopasowanych elementów i przycina spacje dookoła podczas sprawdzania.
Stosowanie
jeśli przeglądasz różne tagi, np. zakres lub przycisk
Domyślny tag wartości = „a” będzie wymagał Babel w starszych przeglądarkach
źródło
a
będzie zawierałstr
-el
zostanie uwzględniony wgetElementsByText
wyniku; co jest złe.Po prostu przekaż podciąg do następującego wiersza:
Zewnętrzny HTML
Wewnętrzny HTML
Możesz ich używać do przeszukiwania całego dokumentu i pobierania tagów zawierających wyszukiwane hasło:
Zastosowanie :
Ile razy jest mowa o użytkowniku „T3rm1” na tej stronie?
1
Ile razy wspomniano o jQuery?
3
Pobierz wszystkie elementy zawierające słowo „Cybernetic”:
źródło
Uważam, że użycie nowszej składni jest nieco krótsze w porównaniu z innymi odpowiedziami. Oto moja propozycja:
JSfiddle.net
źródło
Aby uzyskać metodę filtru od user1106925 pracującego w <= IE11, jeśli to konieczne
Operator spreadu można zamienić na:
[].slice.call(document.querySelectorAll("a"))
a obejmuje połączenie z
a.textContent.match("your search term")
który działa całkiem nieźle:
źródło
Array.from
zamiast[].slice.call
. Na przykład:Array.from(document.querySelectorAll('a'))
Chociaż możliwe jest zapoznanie się z tekstem wewnętrznym, myślę, że zmierzasz w złym kierunku. Czy ten wewnętrzny ciąg jest generowany dynamicznie? Jeśli tak, możesz nadać tagowi klasę lub - jeszcze lepiej - identyfikator, gdy tekst zostanie tam umieszczony. Jeśli jest statyczny, jest jeszcze łatwiej.
źródło
Możesz użyć a,
TreeWalker
aby przejść przez węzły DOM i zlokalizować wszystkie węzły tekstowe, które zawierają tekst, i zwrócić ich rodziców:źródło
To spełnia swoje zadanie.
Zwraca tablicę węzłów zawierającą
text
.źródło
Myślę, że abyśmy mogli Ci pomóc, musisz być bardziej szczegółowy.
Jeśli tekst jest unikalny (lub naprawdę, jeśli nie jest, ale musiałbyś przejść przez tablicę), możesz uruchomić wyrażenie regularne, aby go znaleźć. Do tego zadziała użycie preg_match () PHP.
Jeśli korzystasz z JavaScript i możesz wstawić atrybut ID, możesz użyć metody getElementById („id”). Następnie możesz uzyskać dostęp do atrybutów zwróconego elementu poprzez DOM: https://developer.mozilla.org/en/DOM/element.1 .
źródło
Po prostu potrzebowałem sposobu, aby uzyskać element, który zawiera określony tekst i oto, co wymyśliłem.
Użyj,
document.getElementsByInnerText()
aby uzyskać wiele elementów (wiele elementów może mieć dokładnie ten sam tekst) i użyj,document.getElementByInnerText()
aby uzyskać tylko jeden element (pierwsze dopasowanie).Możesz również zlokalizować wyszukiwanie, używając elementu (np.
someElement.getElementByInnerText()
) Zamiastdocument
.Może być konieczne dostosowanie go, aby działał w różnych przeglądarkach lub spełniał Twoje potrzeby.
Myślę, że kod jest oczywisty, więc zostawię go tak, jak jest.
źródło