如何使用jquery展平元素层次结构?

时间:2015-05-16 08:50:11

标签: javascript jquery

我尝试创建一段代码来获取jquery层次结构并将其展平。我尝试使用regexps,字符串连接和元素遍历。但我总是最终得到不能完成这项工作的古怪代码。好像我已经过头了,我错过了一些简化任务的关键功能。

基本上我想要这个:

<h3>
    AAA
    <p>
        BBB
        <p>
            <b>CCC</b>
        </p>
        DDD 
    </p>
    EEE
</h3>

转变为:

<h3>
    AAA
</h3>
<p>
    BBB
</p>
<p>
    <b>CCC</b>
</p>
<p>
    DDD
</p>
<h3>
    EEE
</h3>

我知道我的起始HTML不是有效的html,但是我从用户输入得到了这个,并且需要始终保持平坦的html层次结构,除了一些标记,例如<b><u>和{ {1}}。

1 个答案:

答案 0 :(得分:0)

您可以使用{/ 1}}选择器,如

*

您可以不使用

过滤它
var container = $('h3, h3 *')

这将返回没有'b'元素的扁平数组。

demo

Given a dom element, how could I flatten it in jquery and/or JavaScript?