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

112
13 января 2022, 11:40

У меня есть NodeList внутри которого элементы которые отображаются на странице:

elements = document.querySelectorAll('.element');

И при клике на первый элемент elements мне необходимо его удалить и добавить элемент из другого NodeList в конец elements.

Как лучше всего провести вышеописанную операцию?

Answer 1

Конкретно из NodeList нельзя удалять элемент. Можно сделать из него массив и работать с массивом. Что-то около того:

let elements = Array.from( document.querySelectorAll('.element') ); 
let other = document.querySelectorAll('.other'); 
let i = 0; 
 
nodeListDemo(elements); 
 
elements[0].onclick = bubu; 
 
function bubu(){ 
  this.onclick = null; 
  this.classList.remove('nodeList'); // удалил демо-класс с кликнутого элемента 
 
  elements.shift();                  // удалил первый элемент из elements 
  elements.push( other[i++] );       // добавил другой элемент с конца 
   
  nodeListDemo(elements);            // всё, что стало зеленым - принадлежит elements 
  elements[0].onclick = bubu;        // первый элемент уже другой - обработчик на него. 
} 
 
function nodeListDemo(elems){ 
  elems.forEach( e => e.classList.add('nodeList') ); 
}
.element, .other { 
  width: 50px; 
  height: 50px; 
  margin: 5px; 
  display: inline-block; 
  background-color: orange; 
} 
 
.other { background-color: #f36700; } 
 
.nodeList { 
  background-color: green; 
}
<div class="element"></div> 
<div class="element"></div> 
<div class="element"></div> 
<div class="element"></div> 
<div class="element"></div> 
<hr> 
<div class="other"></div> 
<div class="other"></div> 
<div class="other"></div> 
<div class="other"></div> 
<div class="other"></div>

Но в таком виде задача выглядит сликом искусственно. Не помешало бы добавить контекст задачи в вопросе.

READ ALSO
Убрать лишние dots в Own Corousel

Убрать лишние dots в Own Corousel

День добрый, есть карусель и в ней 8 элементовПри прокрутке к последнему элементу появляются лишние квадратики, как их убрать ? Пример: http://joxi

82
сущности в Hibernate

сущности в Hibernate

есть SQL две таблицы,пользовататель может пренадлежать только к одной команде

176
Прошу помощи в понимании интерфейса Future&lt;&gt;

Прошу помощи в понимании интерфейса Future<>

В университете дали задание, написать поискового робота, с помощью ExecutorServise, а доступ к единому индексу должен получаться с помощью Future<>И...

75