Wiem, że mogę wyodrębnić cały tekst z dokumentu HTML za pomocą document.body.innerText
, jak pokazano w poniższym fragmencie,
console.log(document.body.innerText)
<p>
<span id="message">Hello, this is Amanda speaking ..</span>
<span>Please follow the below <b class="emph">instructions</b> </span>
</p>
Ale skąd mam wiedzieć, jakie jest powiązane tags
? Na przykład Hello, this is Amanda speaking ..
jest powiązany z tagiem span
z id=message
. Chcę to zrobić, pobrać tekst z każdego tagu, przepuścić go przez jakiś interfejs API i uzyskać przekształcony tekst. Następnie przywrócę przekształcony tekst, zachowując tę samą strukturę HTML. Ale przy obecnej konfiguracji, jak pokazano powyżej, nie używam powiązanych tagów.
0
Amanda
20 listopad 2019, 07:30
1 odpowiedź
Możesz spróbować z querySelectorAll()
i map()
var tags = document.querySelectorAll('p *');
var res = Array.from(tags).map(el => ({tag: el.tagName, text: el.innerText}));
console.log(res);
<p>
<span id="message">Hello, this is Amanda speaking ..</span>
<span>Please follow the below <b class="emph">instructions</b> </span>
</p>
0
Mamun
20 listopad 2019, 07:35
Biorąc pod uwagę perspektywę, w której chciałbym stale umieszczać przekształcony tekst w odpowiednim tagu, jak to będzie działać? Na przykład w mojej aplikacji demonstracyjnej vigorous-wilson-e04731.netlify.com, jak należy Zajmuję się ciągłym przekształcaniem tekstu i prezentowaniem go, gdy użytkownik przegląda?
– Amanda
20 listopad 2019, 07:41
Array.from(document.body.querySelectorAll('*')).forEach(block=>doSome(block));