【发布时间】:2009-11-01 17:21:31
【问题描述】:
HTML:
<table>
<tr>
<td>
<a href="#">link</a>
</td>
</tr>
</table>
我想:在“a”中查找“链接”并剥离除/直到“表”之外的所有父标签。我知道这不是理想的方法,但有时您无法修改标记,因此了解 jquery hack 会很棒。
【问题讨论】:
-
您期望的标记输出是什么?
HTML:
<table>
<tr>
<td>
<a href="#">link</a>
</td>
</tr>
</table>
我想:在“a”中查找“链接”并剥离除/直到“表”之外的所有父标签。我知道这不是理想的方法,但有时您无法修改标记,因此了解 jquery hack 会很棒。
【问题讨论】:
var a = $("a:contains('link')");
var table = a.closest('table');
a.insertBefore( table ); // Edit: See comments below
table.contents().remove();
table.append( a );
编辑:调用remove() 还将删除可能附加到锚元素的任何事件处理程序。要解决这个问题,请在移除其内容之前将锚点移到表格之外。
【讨论】:
clone(true) <a> 元素,从<tr> 向下删除所有元素,然后附加克隆。