Объединить дочерние элементы, если они имеют одинаковое содержимое - PullRequest
1 голос
/ 12 июня 2019

У меня есть вложенный список, каждый уровень имеет некоторый текст и вложенный в него список. Я должен проверить на каждом уровне, является ли текст одинаковым - если это так, я хочу объединить элементы, чтобы текст не повторялся.

мой 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 элемент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...