У меня есть вложенный список, каждый уровень имеет некоторый текст и вложенный в него список. Я должен проверить на каждом уровне, является ли текст одинаковым - если это так, я хочу объединить элементы, чтобы текст не повторялся.
мой HTML:
<ul class="ordered-cat">
<li class="item-0 level-0-0">
<span class="text">dom</span>
<ul class="inner">
<li class="item-1 level-1-1">
<span class="text">kuh</span>
<ul class="inner">
<li class="item-2 level-2-2">
<span class="text">nap</span>
</li>
</ul>
</li>
</ul>
</li>
<li class="item-0 level-1-0">
<span class="text">dom</span>
<ul class="inner">
<li class="item-2 level-2-1">
<span class="text">kuh</span>
<ul class="inner">
<li class="item-3 level-3-2">
<span class="text">pri</span>
</li>
</ul>
</li>
</ul>
</li>
<li class="item-0 level-2-0">
<span class="text">dom</span>
<ul class="inner">
<li class="item-3 level-3-1">
<span class="text">kuh</span>
<ul class="inner">
<li class="item-4 level-4-2">
<span class="text">pripi</span>
</li>
</ul>
</li>
</ul>
</li>
</ul>
ожидаемый результат:
<ul class="ordered-cat">
<li class="item-0 level-0-0">
<span class="text">dom</span>
<ul class="inner">
<li class="item-1 level-1-1">
<span class="text">kuh</span>
<ul class="inner">
<li class="item-2 level-2-2">
<span class="text">nap</span>
</li>
<li class="item-3 level-3-2">
<span class="text">pri</span>
</li>
<li class="item-4 level-4-2">
<span class="text">pripi</span>
</li>
</ul>
</li>
</ul>
</li>
</ul>
моя попытка jquery:
function cleanMore() {
for (i = 0; i < 7; i++) {
var myarray = [];
$('.item-' + i + '').each(function () {
var beseda = $(this).children('.text').text();
if (jQuery.inArray(beseda, myarray) !== -1) {
myarray.push(beseda);
}
});
for (j = 0; j < myarray.length; j++) {
$('.item-' + i + '').each(function () {
if () { }
});
}
}
}
Я попытался пройти каждый уровень отдельно и проверить их содержимое, но застрял в той части, где мне пришлось проверять дубликаты и объединять их в 1 элемент.