2017-04-05 51 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