У меня возникают трудности с отображением вкладки из подкатегории. Этот первый фрагмент кода представляет собой уникальную вкладку с классом = 'active_pat_tab' в качестве идентификатора для выделения вкладки. Класс добавляется динамически через переменную, которая идентифицирует идентификатор содержащего li в этом случае id = 'tabAssessDetails'.
<li class='tabs_item' id='tabAssessDetails'>
<a href='#page-1' class='active_pat_tab'>
<span>Assess Details</span>
</a>
</li>
но в приведенном ниже примере у меня есть вкладка с двумя подкатегориями. Он по-прежнему идентифицируется входящей переменной, но в этом случае идентифицированный элемент является вспомогательной категорией вкладки, которая должна быть подсвечена. id = 'tabPhysicalExamination' означает запрограммированную вкладку, но добавление динамического класса должно перейти к родительскому li a... см. третий примерный код.
<li class='has-sub tabs_item'>
<a href='#page-2'><span>Observation</span></a>
<ul>
<li class='tabsub' id='tabCareLevel'>
<a href='#page-17'><span>Care Level</span></a>
</li>
<li class='tabsub' id='tabPhysicalExamination'>
<a href='#page-3'><span>Physical examination</span></a>
</li>
</ul>
</li>
как это должно выглядеть:
<li class='has-sub tabs_item'>
<a href='#page-2' class='active_pat_tab'><span>Observation</span></a>
</li>
Я пробовал несколько вещей, включая
$( "li.tabsub" ).closest( "a" ).addClass('active_pat_tab');
а также
$( "li.tabsub" ).parents( "li.tabs_item" ).addClass('active_pat_tab');
но мне не удалось добавить класс в нужное место.
PS: На вкладке нет клика. Это происходит с другой страницы на конкретную вкладку. Я не думаю, что могу использовать щелчок в этом экземпляре. или я что-то пропустил?
Из вашего начального элемента вы хотите получить содержащее <ul>
, затем элемент <a>
перед ним, так что:
$('#' + id).closest('ul').prev('a').addClass('active_pat_tab');
Я использовал '#' + id
потому что вы сказали, что у вас есть переменная, идентифицирующая идентификатор стартового элемента, и из вопроса, который, похоже, называется id
.
Почему бы вам не сделать:
$('#page2').addClass('active_pat_tab');
Прямо сейчас это не так, потому что ваш # page2 якорь - это братья и сестры с ul, поэтому вы не можете выбрать его с помощью.closest().
Также ваши $( "li.tabsub").parents( "li.tabs_item").addClass('active_pat_tab');
не будет работать, потому что этот класс не является вашим элементом привязки.
иначе вы можете сделать это, не используя id:
$( "li.tabsub" ).closest( "li.tabs_item" ).find('a:first').addClass('active_pat_tab');
использование
$( "li.tabsub" ).closest("li.tabs_item").children("a").addClass('active_pat_tab');
Рекомендации