这也引用了另一个线程:jQuery - If URL matches href then move LI to top of UL?
Jquery 代码:
//set var to current url
var url = window.location.toString();
//if url matches li's anchor then bring it to the top of the list
$('.nav li a').each(function(){
var myHref= $(this).attr('href');
if( url == myHref) {
$(this).closest("li").prependTo(".nav");
}
});
HTML 仅来自 WordPress 导航,因此类似于:
<navrole="navigation">
<ul>
<li>
<a href="">
导航指向类别,并且 url 与 href 匹配,代码可以正常工作。但是,我无法弄清楚如何让代码在我位于类别的子页面时也触发,例如当网址为:
domain.com/category-name/child-page
如果我能让 Jquery 只检测经过域的第一个路径名,那么我将是黄金。第一个路径名之后的任何内容都可以省略或设置为通配符或其他内容。
有什么想法吗?
最佳答案
您可以尝试使用属性包含选择器
:
var dom = document.domain;
var f = location.pathname.split('/')[1];
var url = dom + "/" + f;
$('.nav li a[href*="'+url+'"]').closest("li").prependTo(".nav");
关于jquery 如果 url 第一个路径名与 href 匹配,则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12765324/