javascript - jquery解开多个递归节点

标签 javascript jquery

我正在尝试删除所有具有“toBeRemoved”类的 div,但我不太确定如何去做。我研究了 unwrap,但无法接近我正在寻找的东西。

是否可以轻松地从此:

<div class="toBeRemoved">
    <div class="toBeRemoved">
        <table>
            <tbody>
                <tr>
                    <td>
                        <div class="toBeRemoved">
                            <div class="toBeRemoved">
                                <div style="text-align: left;">
                                    <div class="toBeRemoved">
                                        <div class="toBeRemoved">
                                            First node
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
    <div class="toBeRemoved">
        <table>
            <tbody>
                <tr>
                    <td>
                        <div class="toBeRemoved">
                            <div class="toBeRemoved">
                                <div style="text-align: left;">
                                    <div class="toBeRemoved">
                                        <div class="toBeRemoved">
                                            Second node.
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </td>
                </tr>
            </tbody>
        </table>
    </div>
</div>

<table>
    <tbody>
        <tr>
            <td>
                <div style="text-align: left;">
                    This needs to be kept
                </div>
            </td>
        </tr>
      </tbody>
    </table>
    <table>
      <tbody>
        <tr>
            <td>
                <div style="text-align: left;">
                    This needs to be kept
                </div>
            </td>
        </tr>
      </tbody>
</table>

最佳答案

将每个 .toBeRemoved 元素替换为其直接子元素:

$('.toBeRemoved').each(function() {
  $(this).replaceWith($(this).children());
});

Fiddle

关于javascript - jquery解开多个递归节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36804167/

相关文章:

javascript - 迭代一个 prop,但按不同的 prop 排序 React JS

javascript - 普通的 js 计时器和这个 jquery 计时器插件有什么区别?

javascript - ui-router 多个命名嵌套 View

javascript - 使用 $.contains 查找一个元素是否包含另一个具有焦点的元素

根本没有调用 Javascript 函数

javascript - div之间的导航和div的创建之间的一些问题

javascript - 在 try/catch 中返回与在 .catch 中返回

javascript - 为什么总金额只在一行上计算

jQuery .fadeTo 添加元素

javascript - 如何在 jquery 中找到具有值的元素并在最接近的 <tr> 中设置一个类?