如何使用jQuery移除内层<table>标签但保留内部行元素
实现代码
你可以直接用下面的jQuery代码实现需求,两种写法都可以:
// 写法1:直接替换内层table为其内部内容 $('table > table').each(function() { $(this).replaceWith($(this).contents()); });
代码逻辑说明
- 选择器
table > table匹配所有直接嵌套在<table>下的内层<table>元素,不会误选到其他位置的表格 - 遍历每一个匹配到的内层表格,用
replaceWith方法把当前<table>标签整体替换成它的所有子内容,也就是你要保留的<tr>行元素,自动去掉多余的<table>包裹标签
如果你的内层<table>不是外层<table>的直接子元素,可以把选择器改成$('table table')匹配所有嵌套在表格内的内层表格。
你也可以用更简洁的unwrap写法,效果完全一致:
// 写法2:直接给tr移除外层的table包裹 $('table table tr').unwrap();
另外注意你现有HTML里存在语法错误:<td>aaa</td></td>bbb</td>这里多了一个多余的</td>闭合标签,建议修正为<td>aaa</td><td>bbb</td>,避免渲染异常。
内容的提问来源于stack exchange,提问作者user3508455
相关产品推荐
相关产品推荐

