需要过滤重复的HTML元素

时间:2018-10-24 04:15:28

标签: javascript php

假设我有一个如下所示的HTML:

<div class="row">
    <section>
        <p> My Content </p>                     
    </section>
</div>

我需要像这样

{{1}}

如何使用PHP DOM CLASS或JAVASCRIPT实现它?

1 个答案:

答案 0 :(得分:0)

我使用 jquery 开发了一个简单的功能,应该可以解决您的问题

function refactorByTag(tagName){
    var repeat =false;
    var parent =false;
    var children =false;
    do{
        $(tagName).each(function(index, el) {
            if(!$(this).parent(tagName).length && !$(this).children('section').length){
                parent = false;
                children = false;
                repeat = false;
            }
            else{
                if(!$(this).parent(tagName).length) parent = $(this);
                if(!$(this).children(tagName).length) children = $(this);

                if(parent != false && children != false){
                    repeat = true;
                    parent.replaceWith(children);
                    parent = false;
                    children = false;
                }
            }
        });
    }while(repeat);
}

基本上,将检查您选择的每个标记名是否具有父项和子项,然后将父项替换为相应的子项。

这将循环整个文档,并且仅在具有相同标签的所有元素都没有父元素的情况下停止。

如果您阅读代码而不是我的话,可能会更简单:)

这是一个工作样本 https://jsfiddle.net/Lnztpy7a/2/