有没有办法不用复制粘贴就可以多次使用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();
如果您想要一个将对象展开
n
次的通用函数,可以这样做:
$.fn.unwrapN = function(n) {
while(n--) $(this).unwrap();
return $(this);
}
关于javascript - 你如何多次 .unwrap() 一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30112665/