@absoluteST

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

Добрый день, я недавно начал изучать js, есть задачка которую нужно решить, но у меня не хватает опыта и я не нашёл работающего для меня решения моей проблемы, пытался сделать с помощью nextElementSibling, увы ничего.
Сама задача: для элемента #elem, найдите его соседа снизу и добавьте ему в начало порядковый номер.
<ul>
	<li>text</li>
	<li>text</li>
	<li id="elem">text</li>
	<li>text</li>
	<li>text</li>
</ul>

Я пробовал, но у меня ничего не получается.
  • Вопрос задан
  • 172 просмотра
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const elem = document.querySelector('#elem').nextElementSibling;
if (elem) {
  const num = 1 + [...elem.parentNode.children].indexOf(elem);
  elem.innerText = num + '. ' + elem.innerText;
}

или

const elem = document.querySelector('#elem + *');
if (elem) {
  let num = 1;
  for (let n = elem; n = n.previousElementSibling; num++) ;
  elem.textContent = `${num}. ${elem.textContent}`;
}

или

const elems = document.querySelector('ul').children;
const index = -~Array.prototype.findIndex.call(elems, n => n.id === 'elem');
if (index) {
  elems[index]?.insertAdjacentText('afterbegin', ''.concat(-~index, '. '));
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Absolute138
document.querySelectorAll('ul > li').forEach((el, i)=>{
  if(el.id == 'elem'){ 
      el.nextElementSibling.prepend(i+2 + '. ');
      return false;
  }
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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