Javascript 使用Jquery从列表创建菜单,仅显示父ul和当前级别

Javascript 使用Jquery从列表创建菜单,仅显示父ul和当前级别,javascript,jquery,html,Javascript,Jquery,Html,我一直在尝试从一个列表创建一个菜单,当当前链接被标识为一个span时,我使用它来显示父级和所有分支上的当前级别,同时我在站点中导航。我对脚本编写相当陌生,如有任何帮助,将不胜感激 例子 如果清单是: A. A b A、b、c A b 当前分支跨度在c上。 我希望清单是: B b c b -HTML列表- <ul> <li><span class="currentbranch0"><a href="/site/">Home</a>

我一直在尝试从一个列表创建一个菜单,当当前链接被标识为一个span时,我使用它来显示父级和所有分支上的当前级别,同时我在站点中导航。我对脚本编写相当陌生,如有任何帮助,将不胜感激 例子 如果清单是: A. A b A、b、c A b

当前分支跨度在c上。 我希望清单是: B b c b

-HTML列表-

<ul>
    <li><span class="currentbranch0"><a href="/site/">Home</a></span>
    <ul class="multilevel-linkul-0">
        <li><a href="/site/news/">News</a>
        <ul class="multilevel-linkul-1">
            <li><a href="/site/news/internal/">Internal</a>
            <ul class="multilevel-linkul-2">
                <li><a href="/site/news/internal/archive/">Archive</a></li>
            </ul>
            </li>
            <li><a href="/site/news/external/">External</a>
            <ul class="multilevel-linkul-2">
                <li><a href="/site/news/external/archive/">Archive</a></li>
            </ul>
            </li>
            <li><a href="/site/news/poll/">News Poll</a></li>
            <li><a href="/site/news/allnews/">All News</a></li>
        </ul>
        </li>
        <li><span class="currentbranch1"><a href="/site/locations/">Locations</a></span>
        <ul class="multilevel-linkul-1">
            <li><a href="/site/locations/a/">a</a></li>
            <li><a href="/site/locations/b/">b</a></li>
            <li><ahref="/site/locations/c/">c</a></li>
            <li><span class="currentbranch2"><a href="/site/locations/menutest/">Menu Test</a></span>
            <ul class="multilevel-linkul-2">
                <li><a href="/site/locations/menutest/test/">test</a></li>
            </ul>
            </li>
        </ul>
        </li>
    </ul>
    </li>
</ul>
剧本

     (document).ready(function() {  var output = '<ul>';
output += $("#side_nav span").last().parent().parent().parent().parent().html();
        output += '</ul>';
        document.getElementById('side_nav').innerHTML = output;
    });$("#side_nav li").ready(function() {
    var count = [];
        $("#side_nav ul[class^='multilevel-']").each(function(){
            var item = $(this).attr('class')
            count.push(item);
            count.sort();
        });


        $('#side_nav li').each(function(){
        if($(this).parent('ul').hasClass(count[count.length-1])){

            $(this).remove();
            };
        });
    });
(document).ready(函数(){var output='
    ”; 输出+=$(“#侧边导航跨距”).last().parent().parent().parent().parent().parent().html(); 输出+='
'; document.getElementById('side_nav')。innerHTML=output; });$(“#侧导航李”).ready(功能(){ var计数=[]; $(“#side#nav ul[class^='multively-']”)。每个(函数(){ var item=$(this.attr('class')) 计数、推(项); count.sort(); }); $('side#nav li')。每个(函数(){ if($(this.parent('ul').hasClass(count[count.length-1])){ $(this.remove(); }; }); });
我不确定它应该做什么,但您可以试试这个,我已经更新了JSFIDLE。如果我理解这个问题,您只想显示包含类currentbranch的span的列表项,如下所示。否我想在整个列表中显示同一级别和上一级别的列表项。如果列表为:A b c b且当前分支范围位于c上。我希望名单是b