我有三级动态创建的子菜单。我想添加class =“active”,其中文本具有相同的URL。
空格和逗号将替换为低分。
例如,Glass,plast,gummi og porselen页面将
http://www.mywebsite.com/folder/Glass_plast_gummi_og_porselen.asp
每个href属性都具有与URL
相同的路径HTML
<ul id="submenu">
<ul><li><a href="Grunnskole.asp" title="" class="">Grunnskole</a>
<ul><li><a href="Forskerspiren.asp" title="" class="">Forskerspiren</a>
<ul><li><a href="Sikkerhet.asp" title="" class="">Sikkerhet</a>
</li><li><a href="Laboratorieutstyr(1).asp" title="" class="">Laboratorieutstyr</a>
</li><li><a href="Glass_plast_gummi_og_porselen.asp" title="" class="">Glass, plast, gummi og porselen</a>
</li><li><a href="Datalogging.asp" title="" class="">Datalogging</a>
</li></ul></li><li><a href="Mangfold_in_naturen.asp" title="" class="">Mangfold in naturen</a>
</li><li><a href="Kropp_og_helse.asp" title="" class="">Kropp og helse</a>
</li><li><a href="Verdensrommet.asp" title="" class="">Verdensrommet</a>
</li><li><a href="Fenomener_og_stoffer.asp" title="" class="">Fenomener og stoffer</a>
</li></ul></li><li><a href="Sikkerhet_og_inventar(1).asp" title="" class="">Sikkerhet og inventar</a>
</li><li><a href="Laboratorieutstyr.asp" title="" class="">Laboratorieutstyr</a>
</li></ul>
</ul>
我提前感谢你。
答案 0 :(得分:2)
您可以使用window.location.pathname
获取文件名,然后使用attribute-ends-with或attribute-equals选择器:
// Get the current file name from window.location.pathname
var file = window.location.pathname.split("/").pop();
// Look for <a> elements whose `href` matches the file
$("#submenu a[href$='"+file+"']").addClass("active");
使用此方法,您不会有2个字符被替换为下划线的歧义。
答案 1 :(得分:0)
这有效:http://www.jsfiddle.net/BBvLN/。清理URL的方式不正确。此外,您希望匹配a标记的href,而不是标记中包含的文本。
var url = "http://www.mywebsite.com/folder/Glass_plast_gummi_og_porselen.asp";
var slug = url.replace('http://www.mywebsite.com/folder/','');
$("#submenu a[href=" + slug + "]").addClass("active");