@pcdesign

Как получить data-id ближайшего предыдущего элемента?

<table>
  <tr class="header" data-id="target">
	<td></td>
  </tr>
  <tr>
	<td></td>
  </tr>
  <tr>
	<td></td>
  </tr>
  <tr class="header" data-id="target2">
	<td></td>
  </tr>
  <tr>
	<td></td>
  </tr>
  </table>


У меня есть индекс строки в таблице.
Надо крутить наверх от текущего индекса до тех пор, пока не наткнемся на элемент с классом header. И как только наткнемся, выдернуть его атрибут data-id.

Например, для index = 1 должен быть id = "target1".
Если index = 4, тогда должен получится id = "target2".
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const { id } = Array
  .from(document.querySelectorAll('table tr'))
  .slice(0, index + 1)
  .reverse()
  .find(n => n.classList.contains('header'))
  .dataset;

или

const id = $('table tr')
  .slice(0, index + 1)
  .filter('.header')
  .last()
  .data('id');
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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