仅删除 DOM JQuery 中的父元素
我已经没有主意了。我在这里遇到一个问题,我需要仅删除父元素,同时保留子元素。
<div class="remove_this_only">
<table>
<tbody>
<tr>
<td>I want to get preserved</td>
</tr>
</tbody>
</table>
</div>
结果输出应该是
<table>
<tbody>
<tr>
<td>I want to get preserved</td>
</tr>
</tbody>
</table>
I am running out of ideas. I have an issue here where I need to remove only the parent element while preserving the child element.
<div class="remove_this_only">
<table>
<tbody>
<tr>
<td>I want to get preserved</td>
</tr>
</tbody>
</table>
</div>
the resultant output should be
<table>
<tbody>
<tr>
<td>I want to get preserved</td>
</tr>
</tbody>
</table>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
发布评论
评论(11)
帅气称霸2024-11-23 06:45:01
一种直接的方法:
var div = $(".remove_this_only");
var tmp = div.children().clone();
var parent = div.parent();
div.remove();
tmp.appendTo(parent);
聆听风音2024-11-23 06:45:01
实际答案:
- http://jsfiddle.net/morrison/PqDCH/
- http://jsfiddle.net/morrison/PqDCH/3/
- http://jsfiddle.net/morrison/PqDCH/4/
//option 1
var $table = $('table');
$table.parent().before($table).remove();
//option 2
var $toRemove = $('.remove_this_only');
$toRemove.before($toRemove.children()).remove();
//option 3
$('table').unwrap();
注释:< /strong>
append
、before
和其他一些 jQuery 函数会自动执行“分离”。- 这些都很短,这使得它们很棒。
牛↙奶布丁2024-11-23 06:45:01
可爱暴击2024-11-23 06:45:01
一个非常简单的解决方案是 unwrap() jQuery 方法,并向要删除的父元素添加一个选择器。因此,在您的情况下:
$('table').unwrap('.remove_this_only');
注意:如果您不添加“.remove_this_only”选择器,它可能会展开比您想要的更多的父元素。或者,如果您想确保仅在“.remove_this_only”元素中专门定位“table”元素,您可以执行以下操作:
$('.remove_this_only').find('table').unwrap('.remove_this_only');
~没有更多了~
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
编辑:
听起来您想删除添加到问题中的
。
只需选择
并使用
unwrap()
[文档] 方法。当然,选择器会根据您的实际标记而有所不同。
示例: http://jsfiddle.net/VyJv3/ ( styled
div
已被删除)原始答案:
按照这种方式,您将删除表格所需的元素。
如果您希望删除
,则文本节点将作为
的子节点。你可以这么做。
如果您的 HTML 是这样的:
...并且您想摆脱
,您可以使用
unwrap()
[docs] 方法。EDIT:
Sounds like you want to remove the
<div>
you added to the question.Just select the
<table>
and use theunwrap()
[docs] method.Of course the selector will vary based on your actual markup.
Example: http://jsfiddle.net/VyJv3/ (the styled
div
has been removed)Original answer:
The way it is, you'll be removing an element that is required for a table.
If you were hoping to remove the
<td>
, you'll have text node as a child of a<tr>
. You can do that.If your HTML was like this:
...and you wanted to get rid of the
<span>
, you could use theunwrap()
[docs] method.