Jquery находят или потомки со всеми вхождениями элементов с классом, и пропускают средний уровень и ограничиваются их уровнем - PullRequest
0 голосов
/ 19 октября 2018

Мне нужна помощь в получении правильных селекторов и ограничений для извлечения дочерних элементов на определенном уровне, учитывая нижний бит HTML.

У меня есть первый элемент, который находится наверху.

Мне нужно, чтобы это были дети под дочерним узлом ul, у которых есть класс "поддерево-флажок".Изображение прикреплено для ясности.Большое спасибо.

<li class="green checked" style="color: yellow; border: 2px solid yellow;">
<span class="accordion-heading" data-toggle="collapse" aria-expanded="true" data-target="#Smenu_0_1__1">
    <span id="sp_SM_0_1" class="checkbox subtree-checkbox styled red"><input name="SM_0_1" class="subtree-checkbox styled red" id="SM_0_1" type="checkbox" iid="1" value="false" style="display: none;"></span>
    Users
</span>
<ul class="nav nav-list collapse in" id="Smenu_0_1__1" style="padding-left: 60px;" aria-expanded="true">
    <li>
        <span class="accordion-heading" data-toggle="collapse" data-target="#Smenu_0_1__10" aria-expanded="true">
            <span id="sp_SM_0_1_1" class="checkbox subtree-checkbox styled grey checked" style="color: yellow; border: 2px solid yellow;"><input name="SM_0_1_1" class="subtree-checkbox styled red" id="SM_0_1_1" type="checkbox" iid="2" value="false" style="display: none;"></span>
            new subby tst3
        </span>
        <ul class="nav nav-list collapse in" id="Smenu_0_1__10" aria-expanded="true" style="padding-left: 20px;">
            <li>
            </li>

            <li>
            </li>

            <li>
            </li>

            <li>
            </li>
        </ul>
    </li>
</ul>

Я пробовал это, но, очевидно, не удается.

    var kiddieEls = $(SpanParent).children("input[type=checkbox]");

и это

    var kiddieEls =$(SpanParent).children('ul').find("subtree-checkbox:first-child");

Как быя получаю один или все дочерние элементы на этом уровне?

enter image description here

1 Ответ

0 голосов
/ 22 октября 2018

Это то, что я придумал, возможно, не лучшим образом, но это работает.

У меня есть Родительский Ли в «LiParent», который является моей отправной точкой.

//  finds the ULs under this li element
var childUL = $(LiParent).children('ul .nav-list');

// gets the first level of children (li's)
var FirstLi = $(childUL).children().first();

//use that first child to find the required spans
var ChkBoxSpanS_ToAccumulate = $(SpanAccordionchild).children('span').first()
...