我有以下的代码,试图找到当前URL匹配的链接:$item = $('ul#ui-ajax-tabs li a').attr('href', $(location).attr('pathname'));
而是它改变了所有链接到当前的URL:PjQuery的找到匹配的链接当前页面
谁能帮助我修理它。干杯
我有以下的代码,试图找到当前URL匹配的链接:$item = $('ul#ui-ajax-tabs li a').attr('href', $(location).attr('pathname'));
而是它改变了所有链接到当前的URL:PjQuery的找到匹配的链接当前页面
谁能帮助我修理它。干杯
使用此查询。您的代码更改选定链接的所有href
属性,而不是返回一个选择的链接与匹配href
属性:
$("a[href*='" + location.pathname + "']")
的[href*=..]
选择返回其href
属性包含当前路径元素的列表。
另一种方法,返回其所有元素的href
包含当前路径名。使用prop()
代替attr()
,以便相对URL也能正确解释。
$item = $('ul#ui-ajax-tabs li a').filter(function(){
return $(this).prop('href').indexOf(location.pathname) != -1;
});
这是因为您的CSS选择器ul#ui-ajax-tabs li a
匹配不止一件事。尝试使用选择器更具体,例如ul#ui-ajax-tabs li:first-child a
。
URL的格式可能会在生产中更改,如ASP.NET:/如果忽略URL的末尾斜杠,这可能会更好。
$('.mdl-navigation').find("a").filter(function() {
return this.href.replace(/\/+$/, '') === window.location.href.replace(/\/+$/, '');
}).addClass('current-active-page-url');