У меня есть NodeList
внутри которого элементы которые отображаются на странице:
elements = document.querySelectorAll('.element');
И при клике на первый элемент elements
мне необходимо его удалить и добавить элемент из другого NodeList
в конец elements
.
Как лучше всего провести вышеописанную операцию?
Конкретно из 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>
Но в таком виде задача выглядит сликом искусственно. Не помешало бы добавить контекст задачи в вопросе.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
День добрый, есть карусель и в ней 8 элементовПри прокрутке к последнему элементу появляются лишние квадратики, как их убрать ? Пример: http://joxi
есть SQL две таблицы,пользовататель может пренадлежать только к одной команде
В университете дали задание, написать поискового робота, с помощью ExecutorServise, а доступ к единому индексу должен получаться с помощью Future<>И...