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

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

<tbody><tr>
									<td colspan="7" class="hide-tr name-pnd">ПК1</td>
								</tr><tr>
									<td colspan="7" class="hide-tr search-click">РАЗДЕЛ</td>
								</tr><tr>
									<td>ТЕКСТ</td>
								</tr><tr>
									<td>ТЕКСТ ДЛЯ НАЖАТИЯ</td>
								</tr></tbody>

Мне нужно найти tr в котором есть блок с классом name-pnd. Этот блок находится ДО блока по которому происходит нажатие.
$(this).parent().prev().find('.name-pnd').text()
Так он проверяет только ближайший блок tr, а мне нужно что бы грубо говоря он проверил все tr которые находятся "перед" и подцепил ближайший. Как это сделать
  • Вопрос задан
  • 228 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
const $td = $(this)
  .closest('tr')
  .prevAll('tr:has(.name-pnd)')
  .first()
  .find('.name-pnd');

или

let tr = this.closest('tr');
let td = null;
while ((tr = tr.previousElementSibling) && !(td = tr.querySelector('.name-pnd'))) ;
if (td) {
  // ...
}

https://jsfiddle.net/hy89vk5p/
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Lord_Dantes
Вот, получилось что-то подобное но без таблиц. не знаю код пен что-то не захотел компилить их
https://codepen.io/lord-dantes/pen/oNgoWRm
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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