我已尝试使用此代码,但它返回' undefined'。
(($) ->
$('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>
答案 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')