jQuery删除所有元素,直到id ='what'found

时间:2011-04-22 13:56:06

标签: javascript jquery

需要删除开始代码中的所有代码到下一个

我试过这个

$('#page1').remove();

但这只会删除标签之间的内容。

我不知道page1和page2标签之间还有什么,因为代码是根据页面上的表单元素类型动态添加的

<div id='page1' name='page1'>
 ...
</div> 
<div id='another element' />
<div id=yet 'another element' />
...
<!-- Need to remove from page1 to here -->
<div id='page2' name='page2'>
 ...
</div>

5 个答案:

答案 0 :(得分:16)

假设您要删除page1以及page2之前的所有内容,您可以执行此操作:

$("#page1").nextUntil("#page2").andSelf().remove();

<强> Example on jsfiddle

答案 1 :(得分:0)

如果它们是嵌套的(?)并且你想删除'page1'div中的子节点,你可以这样做:

$('#page1' > div).remove();

或者,如果你想有选择地做 - 并且只删除第1页中的某些div - 你可以添加一个类并做同样的事情。

答案 2 :(得分:0)

如下:

var last = null;
var curr = $('#page1');
while (curr.attr('id') != 'page2') {
    if (last != null) {
        last.remove();
    }
    last = curr;
    curr = curr.next();
}
if (last != null) {
    last.remove();
}

答案 3 :(得分:0)

$('[id^="#another"]:not([id^="#page"])').each(function()
{
   $(this).remove();
});

删除以another开头的所有元素,但不包括以page开头的元素。

答案 4 :(得分:0)

当您需要在JQuery中转换“ID”时,很容易使用“class”。对于可能形成要删除的控件集的每个标记,添加class =“removeSet1”。然后在需要时调用$(".revoveSet1").remove();