标题说明了一切。我想要实现的是检查菜单中的onload url(多个ul,因为它也有子菜单),如果它等于,则将其设为粗体并触发鼠标悬停事件:
$(document).ready(function(){
$('#content > ul > li a[href]').filter(function() {return this.href.pathname === window.location.pathname;}).css('font-weight','bold');
$('#content > ul > li a[href]').filter(function() {return this.href.pathname === window.location.pathname;}).trigger('mouseover');
});
<ul id="menu">
<li><a href="#" onmouseover="displayID('biography');">Biography</a></li>
<li><a href="/tagged/Commercial_photography" onmouseover="displayID('commercial-photography');">Commercial photography</a></li>
<li><a href="/tagged/Fine_art_photography" onmouseover="displayID('fine-art-photography');">Fine art photography</a></li>
<li><a href="/tagged/Action" onmouseover="displayID('action');">Action</a></li>
<li><a href="/tagged/Video" onmouseover="displayID('video');">Video</a></li>
<li><a href="#" onmouseover="displayID('links');">Links</a></li>
</ul>
我认为只有一个非常简单的错误,因为我对jquery并不熟悉,所以我非常感谢任何帮助
答案 0 :(得分:1)
链接的href
属性是一个字符串,没有pathname
属性。
使用this.pathname
代替this.href.pathname
来解决您的问题:
function(){
return this.pathname === location.pathname &&
!/^#/.test(this.getAttribute('href')) //The href at HTML may not
} //start with #
评论后编辑:
getAttribute
方法用于获取原始href
属性,因为this.href
不包含#
,而是http://fullpath/etc/file#
。