janfichter
@janfichter
веб-мастер

Как взять значение атрибута data у соседа и присвоить его элементу?

Есть такая структура:
<ul id="parent">
<li class="belyo" data-level="1" data-category="belyo"><a href="">Текст 1</a></li>
<li class="belyo" data-level="1" data-category="belyo"><a href="">Текст 2</a></li>
<li class="belyo" data-level="2" data-category="belyo"><a href="">Текст 3</a></li>
<li class="belyo" data-level="2" data-category="belyo"><a href="">Текст 4</a></li>
</ul>

Мне нужно было вставить перед firstchild списка новый элемент. Сделал это так:
let parent = document.querySelector('#parent');
let before = document.querySelector('.belyo');
let li = document.createElement('li');
li.innerHTML = '<a href="">Бельё</a>';
li.classList.add("belyo");
li.dataset.category = 'belyo';
parent.insertBefore(li, before);


Получилось следующее:
<ul id="parent">
<li class="belyo" data-category="belyo"><a href="">Бельё</a></li>
<li class="belyo" data-level="1" data-category="belyo"><a href="">Текст 1</a></li>
<li class="belyo" data-level="1" data-category="belyo"><a href="">Текст 2</a></li>
<li class="belyo" data-level="2" data-category="belyo"><a href="">Текст 3</a></li>
<li class="belyo" data-level="2" data-category="belyo"><a href="">Текст 4</a></li>
</ul>


Всё правильно. Но как теперь сделать так, чтобы созданному мной элементу списка присваивался атрибут data-level от ближайшего соседа снизу?

То есть, если у ближайшего соседа data-level="1", то выводит 1, а если data-level="2", то 2.
  • Вопрос задан
  • 47 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Ну и в чём проблема? Ссылка на нужный элемент у вас уже есть, берёте и присваиваете:

li.dataset.level = before.dataset.level;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы