Выбор дочерних элементов дочернего элемента в jQuery

#jquery

#jquery

Вопрос:

У меня есть боковая навигация, которая импортирует полную навигацию сайта, и я хотел бы сократить ее только до дочерних ссылок текущего раздела. Структура такая:

 <div class="sidebarLinks">
<ul>
    <li> <!-- MAIN NAV SECTION -->
        <a href="#" id="MainA">MainA</a>
    </li>
    <li> <!-- MAIN NAV SECTION -->
        <a href="#" id="MainB">MainB</a>
        <ul>
            <li><a href="#" id="B-A">B-A</a></li>
            <li><a href="#" id="B-B">B-B</a></li>
            <li><a href="#" id="B-C">B-C</a></li>
        </ul>
    <li>
    <li> <!-- MAIN NAV SECTION -->
        <a href="#" id="MainC">MainC</a>
        <ul>
            <li><a href="#" id="C-A">C-A</a></li>
            <li><a href="#" id="C-B">C-B</a></li>
            <li><a href="#" id="C-C">C-C</a></li>
        </ul>
    <li>
</ul>
</div>
  

Итак, если я нахожусь на B-A, я хочу видеть B-A, B-B и B-C в боковой навигации, но не MainB или любые другие ссылки. Я пробовал следующее, но оно возвращает второй дочерний элемент каждого основного раздела навигации (B-B, C-B и т.д.):

 $(".sidebarLinks ul li:nth-child(2)").children().show();
  

Мы высоко ценим любые советы. Спасибо.

Ответ №1:

 $(".sidebarLinks > ul > li:nth-child(2) > *").show();
  

Селектором дочерних элементов jQuery является символ «>». Вы также можете сохранить вызов .children() с помощью «> *», поскольку это приведет к получению любого элемента, являющегося дочерним элементом n-го li.

Комментарии:

1. Спасибо за ответ, попугаи. Я не думал использовать «*» для ссылки на всех дочерних элементов. Я заставил его работать с этим: $(".sidebarLinks ul li:nth-child(3) li").children().show(); Это также сработало: $(".sidebarLinks > ul > li:nth-child(2) li > *").show(); Спасибо за помощь.