【问题标题】:Get current URL and find nav items matching part of it, then show submenu获取当前 URL 并找到与其部分匹配的导航项,然后显示子菜单
【发布时间】:2015-01-10 19:42:28
【问题描述】:

我有一个默认隐藏子菜单的导航菜单。如果我在主页以外的页面上,我想显示与当前位置匹配的导航项的子菜单。

我可以找出当前路径名:

var currentUrl = (window.location.pathname);

我知道如何扫描href参数:

$('ul.see li a[href^="/' + location.pathname.split("/")[1] + '"]');

获取子菜单的第一个目录。

如何浏览导航项目并将类添加到父 li 项目?

我的菜单标记如下:

<ul id="mainNavigation">
        <li class="hasKids"><a href="javascript:void(0)">About</a>
            <ul>
                <li><a href="/about/the-salon">The Salon</a>
                </li>
                <li><a href="/about/our-story">Our Story</a>
                </li>
                <li><a href="/about/joe-mills">Joe Mills</a>
                </li>
                <li><a href="/about/stylists">Stylists</a>
                </li>
                <li><a href="/about/products">Products</a>
                </li>
            </ul>
        </li>
        <li class="hasKids"><a href="javascript:void(0)">Services</a>
            <ul >
                <li><a href="/services/colour">Colour</a>
                </li>
                <li><a href="/services/cutting-&amp;-styling">Cutting &amp; Styling</a>
                </li>
                <li><a href="/services/waving-&amp;-straightening">Waving &amp; Straightening</a>
                </li>
                <li><a href="/services/treatments">Treatments</a>
                </li>
            </ul>
        </li>

所以如果我是 /services/colour,我想显示服务子菜单。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    问:如何浏览导航项并将类添加到父 li 项?

    假设你在你的锚标记处:

    var $a = $('ul.see li a[href^="/' + location.pathname.split("/")[1] + '"]');
    

    然后,您可以使用 .closest() 方法到达最近的 LI

    $a.closest('li')
    

    然后,添加你想要的类...如果你需要在那里添加一个类等,然后导航到它的 .closest('ul') 等等。

    【讨论】:

    • 感谢您的帮助,Kevin,我把它整理好了,但这看起来是一个合法的解决方案
    猜你喜欢
    • 2018-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多