javascript - 如何选择嵌套列表中的所有父 <li>

标签 javascript jquery html css

我已经为类别及其子类别生成了一棵树。树的深度可能达到n
生成的html代码为:

<ol>
    <li>Category1</li>
    <li>
        Category2
        <ol>
            <li>SubCat21</li>
            <li>SubCat22</li>
            <li class='current-cat'>
                SubCat23
                <ol>
                    <li>SubSubCat231</li>
                    <li>SubSubCat232</li>
                </ol>
            </li>
        </ol>
    </li>
    <li>
        Category3
        <ol>
            <li>SubCat31</li>
            <li>SubCat32</li>
            <li>
                SubCat33
                <ol>
                    <li>SubSubCat331</li>
                    <li>SubSubCat332</li>
                </ol>
            </li>
        </ol>
    </li>
</ol>

正如您在上面看到的,<li>class='current-cat'是我当前的类别页面。现在使用 CSS我已经展示了它的 child <ol>作为:

ol li>ol{display:none;}
ol li.current-cat>ol{display:block;}

但是,如果我当前的类别很深入,那么我将无法查看当前类别及其子类别。
所以我需要一个出路让 parent <li>给 child 看<ol><li>class='current-cat' .

我用 jquery 试过了但没有取得任何成功。

JSFiddle for above tree structure

最佳答案

使用 .ParentsUntil()你可以选择你的元素

$('li#child').ParentsUntil('ol#root', 'li');

编辑:

在 JS 中:

$('ol#root li.current-cat').each(function (index) {
    debugger;
    $(this).parentsUntil('dt', 'ol').css({
        display: 'block'
    });
});

或者可以使用这个fiddle

关于javascript - 如何选择嵌套列表中的所有父 <li>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21106607/

相关文章:

JavaScript 替换所有忽略大小写敏感

javascript - 使用 ajax 的 API 调用不起作用

Jquery Burger Menu 无法正确应用类

html - 当有人输入一个长词(没有空格)时内容溢出

javascript - 使用 'view more' 按钮增强每个表格行的信息

javascript - 无法实现 JavaScript 翻转计数器

java - 向 Netty HTTP 服务器发送 ajax 请求

javascript - 奇怪的 JavaScript 行为

java - 需要统一的浏览器引擎

html - 如何停止加载时播放 Flex 视频