jQuery查找与当前页面匹配的链接

时间:2011-10-13 09:58:54

标签: jquery

我有以下代码尝试查找与当前网址匹配的链接:$item = $('ul#ui-ajax-tabs li a').attr('href', $(location).attr('pathname'));但是它会更改指向当前网址的所有链接:P

任何人都可以帮我修复它。干杯

3 个答案:

答案 0 :(得分:13)

使用此查询。您的代码会更改所选链接的所有href属性,而不是返回一组具有匹配href属性的链接:

$("a[href*='" + location.pathname + "']")

[href*=..]选择器返回href属性包含当前路径名的元素列表。

另一种方法,返回href包含当前路径名的所有元素。使用prop()代替attr(),以便正确解释相对网址。

$item = $('ul#ui-ajax-tabs li a').filter(function(){
    return $(this).prop('href').indexOf(location.pathname) != -1;
});

答案 1 :(得分:0)

那是因为你的CSS选择器ul#ui-ajax-tabs li a匹配多个东西。尝试使用您的选择器更具体,例如ul#ui-ajax-tabs li:first-child a

答案 2 :(得分:0)

在生产中,如果格式可能会像ASP.NET一样发生变化:/如果忽略URL的结束斜杠,这可能会更好。

$('.mdl-navigation').find("a").filter(function () {
  return this.href.replace(/\/+$/, '') === window.location.href.replace(/\/+$/, '');
}).addClass('current-active-page-url');