Всем добрый день.
Имеется следующий 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 у которого текст начинается со знака "-" и так далее по аналогии.