Разверните родительский узел диапазона и оберните каждый дочерний текст независимым узлом диапазона - PullRequest
0 голосов
/ 11 октября 2019

Используя Javascript (и TreeWalker API, но не JQuery), я хотел бы извлечь каждый текстовый узел родительского узла <span> (который я хочу развернуть после) и обернуть каждое отдельное слово текстовых узлов <span> тег, содержащий все те же атрибуты, которые имел родительский узел. Если внутри родительского узла <span> есть какие-либо другие теги, они должны поддерживаться только в том виде, в каком они есть, и оставаться в правильном порядке во время восстановления предложения. Смотрите этот пример:

Если веб-страница имеет такую ​​структуру:

<div>
   ...
   <span id="x" style="w" class="z"> //parent node to unwrap
       Lorem ipsum
       <em> dolor sit </em>
       amet
   </span>
   ...
</div>

Я хотел бы получить такой результат:

<div>
   ...
   <span id="x" style="w" class="z"> Lorem </span>
   <span id="x" style="w" class="z"> ipsum </span>
   <em> dolor sit </em>
   <span id="x" style="w" class="z"> amet </span>    
   ...
</div>

Я видел, что могу получить родителя основного<span> (который будет развернут) и вставлять каждый дочерний узел перед ним (с методом insertBefore ()), но я не знаю, как перебрать его дочерние узлы, обернуть каждое отдельное слово текстового узла новым тегом <span>и поддерживать порядок узлов, как показано в примере. Не могли бы вы мне помочь? Спасибо!

...