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
Musisz zapętlić wszystkie elementy w bloku, na przykład Array.from(document.body.querySelectorAll('*')).forEach(block=>doSome(block));
 – 
zb'
20 listopad 2019, 07:34
@zb' 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:42
1
Nie rozumiem, co to znaczy ciągle?
 – 
zb'
20 listopad 2019, 10:13
@zb „Mam na myśli dynamiczne zachowanie. Na przykład w nieskończonym przewijaniu, witrynach e-commerce itp.
 – 
Amanda
20 listopad 2019, 12:10

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