我需要删除在两个静态div
元素之间动态加载的div
个元素。
HTML
<div id="defaultFirst">
</div>
..
..
..
<div id="defaultLast">
</div>
在这两个静态div
元素之间加载了一些div
个元素。现在我需要在添加其他元素之前删除它们。
我尝试使用$('#defaultFirst').nextAll('div').remove()
,但也删除了#defaultLast
元素。
我知道我可以获取动态div
的ID并删除。但我需要知道是否有更简单的方法来删除那些动态div
元素?
答案 0 :(得分:11)
使用nextUntil()
代替nextAll()
,然后传入选择#defaultLast
元素的选择器:
$('#defaultFirst').nextUntil('#defaultLast').remove();
.nextUntil( [selector ] [, filter ] )
描述:获取每个元素的所有后续兄弟,但不包括由传递的选择器,DOM节点或jQuery对象匹配的元素。
如果您不希望删除这两个元素之间不是div
元素的元素,则可以通过将选择器传递给{{1}来专门删除div
个元素调用:
remove()
答案 1 :(得分:5)
我会建议找到为什么div出现在第一位而不是像这样的黑客攻击的原因。但是,如果必须,则以下内容应该可以正常工作
$('#defaultFirst').nextAll('div').not('#defaultLast').remove();
Codepen示例 - http://codepen.io/webknit/pen/ZeZXdQ