我有一个包装器div,里面有几个子div,并且这些子div内也有标签。我想删除包装器div。我已经考虑过JQuery的解包,但似乎我需要指定子div来告诉Jquery要解包的内容。如果有几个孩子,这会起作用吗?
所以,代码如下:
<div id="wrapper">
<div id="innerDiv1"></div>
<div id="innerDiv2"></div>
<div id="innerDiv3"></div>
</div>
任何帮助,一如既往,表示赞赏。
谢谢。
答案 0 :(得分:29)
unwrap
方法可以正常工作(您可以选择任意/任意数量的兄弟姐妹):
$("#innerDiv1").unwrap();
从文档(强调添加):
匹配的元素(及其兄弟姐妹,如果有的话)取代他们的 DOM结构中的父母。
答案 1 :(得分:5)
添加到@james
你可以做这样的事情
var innerDivs = $("#wrapper").html();
$("#wrapper").remove();
$("body").append(innerDivs); // you will need to change this to append to whatever element you like
jsfiddle示例
答案 2 :(得分:0)
function unwrap(el){
var parent = el.parentNode; // get the element's parent node
while (el.firstChild){
parent.insertBefore(el.firstChild, el); // move all children out of the element
}
parent.removeChild(el); // remove the empty element
}
代码是直接的,比相应的jQuery方法$ .unwrap()快得多。
来源:https://plainjs.com/javascript/manipulation/unwrap-a-dom-element-35/
答案 3 :(得分:0)
另一种解决方案是将.replaceWith()
与.html()
结合使用:
jQuery('#wrapper').each(function () {
var t = jQuery(this);
t.replaceWith(t.html());
});