Задать вопрос
Shepych
@Shepych
Backend Laravel

Как удалить все элементы после селектора?

Как удалить все элементы после выбранного селектора с id="point" ??
<div id="questions">
  <div></div>
  <div></div>
  <div></div>
  <div id="point"></div>
  <div></div> <!-- удалить -->
  <div></div> <!-- удалить -->
  <div></div> <!-- удалить -->
  <div></div> <!-- удалить -->
  <!-- ... -->
  <!-- ... -->
</div>
  • Вопрос задан
  • 222 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 2
0xD34F
@0xD34F Куратор тега JavaScript
После кого надо удалить элементы: const selector = '#point';.

Удаляем:

const elem = document.querySelector(selector);
const parent = elem?.parentNode;
const elems = [...parent?.children ?? []];
const index = elems.indexOf(elem);
elems.slice(-~index || elems.length).forEach(n => parent.removeChild(n));

// или

for (
  const el = document.querySelector(selector);
  el?.nextElementSibling;
  el.nextElementSibling.remove()
) ;

// или

document.querySelectorAll(`${selector} ~ *`).forEach(n => n.outerHTML = '');
Ответ написан
Комментировать
websitedev
@websitedev
Веб-разработчик. Разрабатываю сложные сайты.
// получаем все блоки внутри блока questions
let elements = document.getElementById('questions').querySelectorAll('div');

// удаляем блок, если значение этой переменной истинное
let deleteElement = false;

// крутим цикл по этим блокам
for (var i = 0; i < elements.length; i++) {
  
  if(deleteElement) {
    elements[i].remove();
  }
  
 // если цикл достиг блоку с id point, тогда следующим шагом нужно удалить блок
  if(elements[i].id === 'point'){
   deleteElement = true;
  }
}


Работающий пример
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы