Предположим, что следующая разметка:
<div id="NotificationBar">Stuff</div>
<div id="StatusBar>
<p>Stuff</p>
</div>
<div id="myContainer>
<div id="NotificationBar">Stuff</div>
<div id="StatusBar>
<p>Stuff</p>
</div>
<div>
Я хочу следующее:
#NotificationBar
и #StatusBar
не входят в #myContainer
- удалите их из DOMОкончательная разметка, которую я хочу, такова:
<div id="myContainer>
<div id="NotificicationBar">Stuff</div>
<div id="StatusBar>
<p>Stuff</p>
</div>
<div>
Я попробовал следующее, но в итоге удалю весь родитель, который не то, что я хочу:
$("#StatusBar").parent('div').not('#myContainer').remove()
$("#NotificationBar").parent('div').not('#myContainer').remove()
Я не могу просто скрыть вещи с помощью CSS, мне действительно нужно удалить элементы из DOM.
Идентификатор элемента должен быть уникальным, поэтому используйте класс для группировки похожих элементов
<div class="NotificationBar">Stuff</div>
<div class="StatusBar">
<p>Stuff</p>
</div>
<div id="myContainer">
<div class="NotificationBar">Stuff</div>
<div class="StatusBar">
<p>Stuff</p>
</div>
</div>
тогда
$('.NotificationBar, .StatusBar').not('#myContainer .NotificationBar, #myContainer .StatusBar').remove()
Демо: скрипка