Есть ли способ извлечь текст вокруг элемента DOM? - PullRequest
1 голос
/ 16 июня 2020
<div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.<sup>2</sup> Tecum
    optime, deinde etiam cum mediocri amico.<sup>2</sup> Idem iste, inquam, de voluptate
    quid sentit?
  </p>

  <p>
    Bonum liberi: misera orbitas. Oratio me istius philosophi non offendit; Hoc
    sic expositum dissimile est superiori. Cave putes quicquam esse verius. Quae
    ista amicitia est?
  </p>

  <p>
    Duo Reges: constructio interrete.<sup>3,4</sup> Ita nemo beato beatior.
    Efficiens dici potest.<sup>5</sup> Consequentia exquirere, quoad sit id,
    quod volumus, effectum. Tubulo putas dicere?
  </p>

  <p>
    Haec para/doca illi, nos admirabilia dicamus. Bonum valitudo: miser morbus.
    Equidem e Cn. Respondent extrema primis, media utrisque, omnia omnibus. At
    ille pellit, qui permulcet sensum voluptate.
  </p>

  <p>
    Recte dicis; Frater et T. Cur post Tarentum ad Archytam? De quibus cupio
    scire quid sentias. Primum quid tu dicis breve?<sup>5</sup> 
  </p>
</div>

Для каждого элемента sup, как я могу получить текст вокруг элемента?

Для первого <sup>2</sup> как я могу получить 10 символов ("cing elit.") слева от <sup>2</sup> и 10 знаков («Tecum opti») справа от <sup>2</sup>?

[...document.querySelectorAll('sup')].forEach(sup => {
    // for e.g. the current sup element is the first <sup>2</sup>
    // how would someone be able retrieve the text around it.
    // i.e.
    // ... adipiscing elit.<sup>2</sup> Tecum optime ...
})

Я не могу найти какой-либо реальный способ добиться этого. Я даже не уверен, возможно ли это технически.

Спасибо за вашу помощь.

1 Ответ

1 голос
/ 16 июня 2020

Вы можете использовать previousSiblingnextSibling):

Array.from(document.querySelectorAll("sup"), function (elem) {
    console.log(elem.previousSibling.textContent.slice(-10));
});
<div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.<sup>2</sup> Tecum
    optime, deinde etiam cum mediocri amico.<sup>2</sup> Idem iste, inquam, de voluptate
    quid sentit?
  </p>

  <p>
    Bonum liberi: misera orbitas. Oratio me istius philosophi non offendit; Hoc
    sic expositum dissimile est superiori. Cave putes quicquam esse verius. Quae
    ista amicitia est?
  </p>

  <p>
    Duo Reges: constructio interrete.<sup>3,4</sup> Ita nemo beato beatior.
    Efficiens dici potest.<sup>5</sup> Consequentia exquirere, quoad sit id,
    quod volumus, effectum. Tubulo putas dicere?
  </p>

  <p>
    Haec para/doca illi, nos admirabilia dicamus. Bonum valitudo: miser morbus.
    Equidem e Cn. Respondent extrema primis, media utrisque, omnia omnibus. At
    ille pellit, qui permulcet sensum voluptate.
  </p>

  <p>
    Recte dicis; Frater et T. Cur post Tarentum ad Archytam? De quibus cupio
    scire quid sentias. Primum quid tu dicis breve?<sup>5</sup> 
  </p>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...