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

Как на чистом JS получить предыдущий элемент (аналогично .prev() в jQuery)?

Как на чистом JS получить предыдущий элемент (аналогично .prev() в jQuery)? Ну и .after() если возможно.
  • Вопрос задан
  • 8485 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
Stalker_RED
@Stalker_RED
Ответ написан
Комментировать
0xD34F
@0xD34F Куратор тега JavaScript
function prev(el, selector) {
  if (el instanceof HTMLElement) {
    el = el.previousElementSibling;
    return el && (!selector || el.matches(selector)) ? el : null;
  }

  if (el && Number.isInteger(el.length) && el.length >= 0) {
    return Array.prototype.reduce.call(
      el,
      (acc, n) => ((n = prev(n, selector)) && acc.push(n), acc),
      []
    );
  }

  return null;
}


// можно передавать как одиночный элемент (результатом будет тоже элемент или null)...
prev(document.body)

// ... так и коллекции (результатом будет массив)
prev(document.images)
prev(document.querySelectorAll('div'), 'span')

А вообще - загляните-ка сюда.
Ответ написан
Комментировать
politon
@politon
HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
Учебник на РУССКОМ читать не между строк ;) https://learn.javascript.ru/traversing-dom#соседи-...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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