2017-04-05 52 views
5

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

HTML

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

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

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

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

+1

尝试'$( '#defaultFirst')nextAll( 'DIV')不是( “#defaultLast”)删除()'或'$('#defaultFirst')。nextAll('div')。not(“。doNotRemoveClass”)。remove()'更多元素 – sTx

回答

11

的使用nextUntil()代替nextAll(),并通过在其中选择您的#defaultLast元素的选择:

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

.nextUntil([selector ] [, filter ])

说明:获取每个元素最多,但不包括该元素的所有后面的兄弟姐妹通过选择器,DOM节点或jQuery对象进行匹配。

jQuery's documentation on nextUntil()

如果您有没有这两个之间div元素你都不想删除元素,您可以通过指定一个选择传递给你的remove()通话中移除只div元素:

$('#defaultFirst').nextUntil('#defaultLast').remove('div'); 
+3

喜欢你编辑答案的方式。提供了更深入的信息。 –

+0

下面是一个可供参考的工作示例:https://jsfiddle.net/r9pzfkge/ – Deckerz

+0

感谢您的快速回复。 – iamCR

5

我会建议找到为什么divs出现在第一个地方,而不是黑客这样的原因。但是,如果你要那么下面应该工作

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

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

+3

已回复已发表评论。 –

+0

为什么倒票,@iamCR? – webknit

+0

很棒@AakashThakur,但为什么我会得到一个投票? – webknit