我想删除form
之前和之后的所有内容。我是jquery和英语的新手。
<h1>hello</h1>
<span>world</span>
<form id=f>
<input name=g>
<input type=submit>
</form>
<div>footer</div>
<p>more</p>
答案 0 :(得分:2)
我会去:
var el = $('#f').detach();
$('body').empty().append(el);
即。从你想要保留的DOM中取出这些位,然后用这些元素完全替换当前的主体。这将确保即使您想要的元素嵌套在DOM树的很长一段路上也能正常工作。
答案 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();
}
});
});