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

发布于 2024-11-09 03:00:03 字数 416 浏览 0 评论 0原文

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

我如何解开所有内容,只留下

-编辑-

抱歉,我应该提供更多信息。基本上,我试图定位所有被 p 标签包围的 span 的唯一子代 a 。我希望以下内容能够解决问题,但它只解开了 p 标签。我想知道是否有办法删除 span 标签。

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

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

How would I unwrap everything leaving just <a href="link"></a>?

-edit-

Sorry, I should have provided more information. Basically, I'm trying to target all a's that are the only child of span's which are surrounded by p tags. I was hoping the following would do the trick but it only unwrapped the p tags. I was wondering if there was a way to remove the span tags as well.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

格子衫的從容 2024-11-16 03:00:03

这样做可以做到这一点:

$(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");

编辑以响应您的编辑:

是的,展开仅执行一个父级别(据我所知)。所以只要做两次就可以了。 :)

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

This would do it:

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

Detaches the link from the DOM and sets it aside in the link var. Entirely removes the p from the DOM. Reattaches the a to the body tag.

To put the link back precisely where it is, append it to the parent of the p, not necessarily the body element. So let's say you've got this:

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

You'd use this line instead:

link.appendTo("#foo");

Edit in response to your edit:

Yes, unwrap only does one parent level (as far as I know). So just do it two times. :)

$('p > span:only-child > a:only-child').unwrap().unwrap();
与酒说心事 2024-11-16 03:00:03

您没有提供有关页面上其他元素的足够信息。以下内容只是为了帮助您入门。

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

You haven't provided enough information about the other elements on the page. The following is just to get you started.

var theLink = $("span").html();
$("p").remove();
$("body").html(theLink);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文