合并元素的子元素(如果它们具有相同的内容)

时间:2019-06-12 19:50:52

标签: javascript jquery dom

我有一个嵌套的列表,每个级别都有一些文本和一个嵌套在其中的列表。我必须在每个级别上检查文本是否相同-如果是这样,我想将元素合并在一起,这样文本就不会重复。

我的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个元素的部分。

0 个答案:

没有答案