如何查找特殊标签或 ID 之前和之后的所有内容

发布于 2024-11-01 17:40:08 字数 275 浏览 1 评论 0 原文

我想删除 form 之前和之后的所有内容。我是 jquery 和英语的新手。

<h1>hello</h1>
<span>world</span>
<form id=f>
<input name=g>
<input type=submit>
</form>
<div>footer</div>
<p>more</p>

I want to remove everything before and after form. I am new in jquery and English.

<h1>hello</h1>
<span>world</span>
<form id=f>
<input name=g>
<input type=submit>
</form>
<div>footer</div>
<p>more</p>

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

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

发布评论

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

评论(4

写给空气的情书 2024-11-08 17:40:08

我会选择:

var el = $('#f').detach();
$('body').empty().append(el);

即从 DOM 中取出您想要保留的位,然后用这些元素完全替换当前主体。即使您想要的元素嵌套在 DOM 树中很远的地方,这也将确保它能够正常工作。

请参阅http://jsfiddle.net/rwWp9/1/

I'd go for:

var el = $('#f').detach();
$('body').empty().append(el);

i.e. take the bits out of the DOM that you want to keep, and then completely replace the current body with those elements. This will ensure it works even if the elements you want are nested a long way down the DOM tree.

See http://jsfiddle.net/rwWp9/1/

念三年u 2024-11-08 17:40:08

您可以使用 .nextAll().prevAll() 选择元素前后的所有内容。

$("form#f").nextAll().remove();
$("form#f").prevAll().remove();

标记的 jsfiddle 示例。

You can use .nextAll() and .prevAll() to select everything after and before an element.

$("form#f").nextAll().remove();
$("form#f").prevAll().remove();

Example on jsfiddle of your markup.

小女人ら 2024-11-08 17:40:08

查看 jQuery 函数 not()prevUntil()nextUntil()。还有next()prev()parentsUntil() 可能会有所帮助。

Check out jQuery functions not(), prevUntil() and nextUntil(). Also next(), prev(), and parentsUntil() might be helpful.

最好是你 2024-11-08 17:40:08

您必须使用 nextAll() 和 prevAll() 方法来删​​除所有同级。然而,只是为了给你一个替代的想法,看看这段代码。请注意,这不是解决方案。

$(document).ready(function(){
$("body").children().each(function(i){
   if($(this).attr("id") != "f"){
        $(this).remove();
    }
});
});

You must use nextAll() and prevAll() methods to remove all the siblings. However, just to give you an alternative idea take a look at this code. Please note that it's not the solution.

$(document).ready(function(){
$("body").children().each(function(i){
   if($(this).attr("id") != "f"){
        $(this).remove();
    }
});
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文