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

时间:2011-04-17 13:55:57

标签: jquery jquery-selectors

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

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

4 个答案:

答案 0 :(得分:2)

我会去:

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

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

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

答案 1 :(得分:1)

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

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

标记的jsfiddle上的示例。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

您必须使用nextAll()和prevAll()方法删除所有兄弟姐妹。但是,只是为了给你一个替代的想法,看看这段代码。请注意,这不是解决方案。

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