【问题标题】:How to flatten element hierarchy with jquery?如何使用 jquery 展平元素层次结构?
【发布时间】:2015-05-16 16:55:39
【问题描述】:

我尝试创建一段代码来获取 jquery 层次结构并将其展平。我尝试了正则表达式、字符串连接和元素遍历。但我总是以无法完成工作的古怪代码告终。似乎我有点不知所措,我错过了一些简化任务的关键功能。

基本上我想要这个:

<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 层次结构,除了一些标签,例如 &lt;b&gt;&lt;u&gt;&lt;i&gt;

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    您可以使用* 选择器,如

    var container = $('h3, h3 *')
    

    你可以用not过滤它

    var container = $('h3, h3 *').not('b');
    

    这将返回一个没有“b”元素的扁平数组。

    demo

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

    【讨论】:

    • 用你的例子它仍然没有变平。我得到这个 html:

      AAA

      BBB

      CCC

      DDD

      EEE
    猜你喜欢
    • 2018-08-25
    • 1970-01-01
    • 2012-10-04
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-04
    • 1970-01-01
    相关资源
    最近更新 更多