在父<li>中添加类,如果它是Coffeescript的当前位置</li>

时间:2014-08-27 21:02:16

标签: javascript jquery menu coffeescript

我已尝试使用此代码,但它返回&#39; undefined&#39;。

(($) -> 
    $('li.menu-item a').each (index, element) ->
        if $(element).attr('href') == $(location).attr('href')
            $(element).parent().addClass('selected');
) jQuery

以下是我的HTML代码:

<nav class="menu">
    <ul>
        <li class="menu-item"><a href="<?php bloginfo( 'url' ); ?>">Home</a></li>
        <li class="menu-item"><a href="#"></a></li>
        <li class="menu-item"><a href="#"></a></li>
    </ul>
</nav>

1 个答案:

答案 0 :(得分:0)

我猜你的bloginfo('url') PHP函数调用只返回URL的路径组件(即带有方案,端口或主机名的'/some/path')。为什么会出现问题?好吧,location.href是:

  

[...]包含整个网址的DOMString。

因此location.href将包含架构,主机名,端口......并且仅与路径名的比较将始终失败。我怀疑你只想看看location.pathname

$('li.menu-item a').each (index, element) ->
    if $(element).attr('href') == location.pathname
        $(element).parent().addClass('selected');

此外,无需在jQuery中包含location,因此我切换到location.pathname

更好的是,将其与Jordan's评论结合起来并说:

$("li.menu-item a[href='#{location.pathname}']").parent().addClass('selected')