Помогите обернуть дочерние элементы
Всем добрый день.
Имеется следующий html: <div class="selectm23-options"><div class="selectm23-option" data-value="36"> Clothing</div><div class="selectm23-option" data-value="39">- Accessories</div><div class="selectm23-option" data-value="38">- Hoodies</div><div class="selectm23-option" data-value="37">- Tshirts</div><div class="selectm23-option" data-value="41">-- Decor</div><div class="selectm23-option" data-value="40"> Music</div></div> Пробовал так, но выходит совсем не то, что мне нужно: let allOptions = document.querySelectorAll('.selectm23-option'); let parent = document.querySelector('.selectm23-options'); let groups = []; allOptions.forEach(option => { let optionText = option.innerText; let level = optionText.lastIndexOf('-') + 1; if (level > 0) { if (!groups[level]) { groups[level] = document.createElement('div'); groups[level].className = 'havechild'; } groups[level].appendChild(option.cloneNode(true)); } else { if (groups.length > 0) { parent.insertBefore(groups[1], option); for (let i = 2; i < groups.length; i++) { groups[i - 1].appendChild(groups[i]); } groups = []; } parent.appendChild(option.cloneNode(true)); } }); if (groups.length > 0) { parent.insertBefore(groups[1], allOptions[allOptions.length - 1].nextSibling); for (let i = 2; i < groups.length; i++) { groups[i - 1].appendChild(groups[i]); } } Помогите пожалуйста написать javascript код, который обернет все div у которых текст начинается со знака "-" в div с классом "havechild" вместе с div который стоит перед ними без знака "-" в тексте, также все div у которых текст начинается со знаков "--" нужно обернуть в div с классом "havechild" вместе с идущим перед ними div у которого текст начинается со знака "-" и так далее по аналогии. |
firsmember,
напишите, образец html, того что надо получить в результате. |
Часовой пояс GMT +3, время: 07:03. |