.addClass на основе диапазона, заключенного в две таблицы
Я пытаюсь добавить класс в таблицу.
<table>
> <tbody>
> <tr>
> <td>
> <table>
> <tbody>
> <tr>
> <td>
> <span class="subcategory">
Поэтому я бы хотел добавить класс в исходную таблицу на основе span.subcategory. У меня есть это:
$('span.subcategory').parent().closest("table").addClass('myClass');
Но это только идет ко второму столу.
4 ответа
Решение
$('span.subcategory').closest('table').parent().closest('table').addClass('myClass');
Я считаю, что это должно быть более эффективным, поскольку оно будет проходить по дереву DOM только до второй (внешней) таблицы.
Чтобы добраться до внешнего стола:
$('span.subcategory').parents('table').eq(1).addClass('myClass');
Или, возможно:
$('span.subcategory').parents('table:has("table span.subcategory"):first').addClass('myClass');
Есть ли
$('span.subcategory').closest('table')
.parent().closest('table')
.addClass('myClass');`
Работа?
В качестве альтернативы:
$('table:has(table:has(span.subcategory))').addClass('myClass');