如何使用jQuery解包所有父项?

时间:2011-05-22 03:43:42

标签: jquery

<p><span><a href="link"></a></span></p>

如何解开只留下<a href="link"></a>的所有内容?

-edit -

抱歉,我应该提供更多信息。基本上,我正在尝试定位所有aspan的{​​{1}}个被p标记包围的孩子。我希望以下方法可以解决这个问题,但它只打开p标签。我想知道是否有办法删除span标签。

$('p > span:only-child > a:only-child').unwrap();

2 个答案:

答案 0 :(得分:2)

这样就可以了:

$(document).ready(function() {
    var link = $("a").detach();
    $("p").remove();
    link.appendTo("body");
});

从DOM中分离链接并将其放在link var中。完全从DOM中删除p。将a重新附加到body代码。

要将链接精确地放回原位,请将其附加到p的父级,而不是body元素的父级。所以,假设你有这个:

<div id="foo">
<p><span><a href="link"></a></span></p>
</div>

你会改用这一行:

link.appendTo("#foo");

编辑以响应您的修改:

是的,unwrap只做一个父级别(据我所知)。所以就这样做两次。 :)

$('p > span:only-child > a:only-child').unwrap().unwrap();

答案 1 :(得分:0)

您尚未提供有关页面上其他元素的足够信息。以下是为了让您入门。

var theLink = $("span").html();
$("p").remove();
$("body").html(theLink);