.addClass на основе диапазона, заключенного в две таблицы - PullRequest
1 голос
/ 04 января 2012

Я пытаюсь добавить класс в таблицу.

<table>> <tbody>> <tr>> <td>> <table>> <tbody>> <tr>> <td>> <span class="subcategory">

Так что в основном я хотел бы добавить класс в исходную таблицу на основе span.subcategory. У меня есть это:

$('span.subcategory').parent().closest("table").addClass('myClass');

Но это касается только второго стола.

Ответы [ 4 ]

2 голосов
/ 04 января 2012
$('span.subcategory').parents('table:last')
1 голос
/ 04 января 2012
$('span.subcategory').closest('table').parent().closest('table').addClass('myClass');

Я считаю, что это должно быть более эффективным, поскольку оно будет проходить по дереву DOM только до второй (внешней) таблицы.

1 голос
/ 04 января 2012

Чтобы добраться до внешнего стола:

$('span.subcategory').parents('table').eq(1).addClass('myClass');

Демонстрация JS Fiddle

Или, возможно:

$('span.subcategory').parents('table:has("table span.subcategory"):first').addClass('myClass');

Демонстрация JS Fiddle

0 голосов
/ 04 января 2012

делает

$('span.subcategory').closest('table')
    .parent().closest('table')
    .addClass('myClass');`  

работа

В качестве альтернативы:

$('table:has(table:has(span.subcategory))').addClass('myClass');
...