使用Jquery删除div之间的div

时间:2017-04-05 10:16:56

标签: javascript jquery html

我需要删除在两个静态div元素之间动态加载的div个元素。

HTML

<div id="defaultFirst">
</div>
..
..
..
<div id="defaultLast">
</div>

在这两个静态div元素之间加载了一些div个元素。现在我需要在添加其他元素之前删除它们。

我尝试使用$('#defaultFirst').nextAll('div').remove(),但也删除了#defaultLast元素。

我知道我可以获取动态div的ID并删除。但我需要知道是否有更简单的方法来删除那些动态div元素?

2 个答案:

答案 0 :(得分:11)

使用nextUntil()代替nextAll(),然后传入选择#defaultLast元素的选择器:

$('#defaultFirst').nextUntil('#defaultLast').remove();
  

.nextUntil( [selector ] [, filter ] )

     

描述:获取每个元素的所有后续兄弟,但不包括由传递的选择器,DOM节点或jQuery对象匹配的元素。

     

- jQuery's documentation on nextUntil()

如果您不希望删除这两个元素之间不是div元素的元素,则可以通过将选择器传递给{{1}来专门删除div个元素调用:

remove()

答案 1 :(得分:5)

我会建议找到为什么div出现在第一位而不是像这样的黑客攻击的原因。但是,如果必须,则以下内容应该可以正常工作

$('#defaultFirst').nextAll('div').not('#defaultLast').remove();

Codepen示例 - http://codepen.io/webknit/pen/ZeZXdQ