Предположим, у нас есть этот вход:
<div wrap>1</div>
<div>2</div>
<div wrap>3</div>
<div wrap>4</div>
<div wrap>5</div>
Требуемый вывод должен быть:
<div class="wrapper">
<div wrap>1</div>
</div>
<div>2</div>
<div class="wrapper">
<div wrap>3</div>
<div wrap>4</div>
<div wrap>5</div>
</div>
Кроме того, предположим, что эти элементы являются прямыми дочерними элементами элемента body и могут быть другие несвязанные элементы или текстовые узлы до или после них.
Примечаниекак последовательные элементы группируются внутри одной обертки и не упаковываются по отдельности.
Как бы вы обработали DOMNodeList тела и вставили обертки в правильное место?
После разговора (комментариев) только об упаковкепрямые дочерние элементы элемента тела,
Для этого ввода:
<body>
<div wrap>1
<div wrap>1.1</div>
</div>
<div>2</div>
<div wrap>3</div>
<div wrap>4</div>
<div wrap>5</div>
</body>
Требуемый вывод должен быть:
<body>
<div class="wrapper">
<div wrap>1
<div wrap>1.1</div>
<!–– ignored ––>.
</div>
</div>
<div>2</div>
<div class="wrapper">
<div wrap>3</div>
<div wrap>4</div>
<div wrap>5</div>
</div>
</body>
Обратите внимание, что элементы, которые не являются прямыми потомками элемента body, полностью игнорируются.