Задать вопрос
@m4son

Как в javascript получить всех соседей элемента?

Есть список
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
</ul>

Я использую отслеживание события при клике на элемент списка li
let menu = document.querySelector("ul");
  let menuItems = menu.querySelectorAll("li");
  for (let item of menuItems) {
    item.addEventListener("click", myfunction);
  }

Получается, внутри функции myfunction this - это тот элемент, на который я нажал.
А как мне получить остальные 4 элемента и присвоить им переменную, например, oterItems ???
  • Вопрос задан
  • 1020 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Из элемента стучимся в его родительский элемент, из родителя получаем коллекцию вложенных элементов, отбрасываем исходный элемент:

const siblings = Array.prototype.filter.call(
  this.parentNode.children,
  n => n !== this
);

Это если делать по-простому. Но есть и дурацкий вариант - можно пробежаться по ссылкам на предыдущие и следующие элементы:

const siblings = [];
for (let el = this; (el = el.previousElementSibling); siblings.unshift(el)) ;
for (let el = this; (el = el.nextElementSibling); siblings.push(el)) ;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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