javascript - 你如何多次 .unwrap() 一个元素?

标签 javascript jquery html

有没有办法不用复制粘贴就可以多次使用Jquery的.unwrap()?如果它可以接受一个参数或类似的东西就好了:.unwrap(4) 但它不能。是否有更聪明的解决方案来实现以下目标:?

$(".foo a").unwrap().unwrap().unwrap().unwrap();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li class="foo">
    <div>
        <ul>
            <li>
                <div>
                    <a href="#">Link 1</a>
                </div>
            </li>
        </ul>
    </div>
</li>
<li class="foo">
    <div>
        <ul>
            <li>
                <div>
                    <a href="#">Link 2</a>
                </div>
            </li>
        </ul>
    </div>
</li>
<li class="foo">
    <div>
        <ul>
            <li>
                <div>
                    <a href="#">Link 3</a>
                </div>
            </li>
        </ul>
    </div>
</li>
</ul>

最佳答案

使用 parentsUntil
foo (.foo > *)
的 child (这将是元素的祖先)。

使用addBack包括元素本身。

$('.foo a').parentsUntil('.foo > *').addBack().unwrap();

Fiddle 1


如果您想要一个将对象展开 n 次的通用函数,可以这样做:

$.fn.unwrapN = function(n) {
  while(n--) $(this).unwrap();
  return $(this);
}

Fiddle 2

关于javascript - 你如何多次 .unwrap() 一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112665/

相关文章:

javascript - 谷歌地图 : unwanted resizing of the map

javascript - 如何使用js和php创建类似于Google analytic的跟踪脚本?

javascript - 创建一个带有多个子菜单的 megamenu 并添加幻灯片动画

html - 按钮大小显示不正确

html - 使用 skip to link 后忽略 tabindex 的元素

javascript - 编辑器 : setData() causing Error for large Documents

javascript - 如何从异步函数中抛出异常

javascript - 如何重新使用此代码?想学习 javascript 的新东西

javascript - 谷歌应用脚​​本: Calling a function from menu with a spreadsheet range as the parameter

javascript - 解释connect session中的length和clear session store方法