2011-10-13 2 views
4

내가 가지고있는 현재의 URL과 일치하는 링크를 찾기 위해 노력하고 다음 코드를 $item = $('ul#ui-ajax-tabs li a').attr('href', $(location).attr('pathname'));를 대신는 현재 URL에 대한 모든 링크 변경 : jQuery를 일치 링크를 찾을 현재 페이지

이 사람이 나를 도울 수

P를 그것을 고쳐라. 건배

답변

11

이 쿼리를 사용하십시오. 코드는 오히려 일치 href 속성 링크의 선택을 돌아보다, 선택한 모든 링크 href 속성을 변경 :

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

[href*=..] 선택은 href 속성 현재의 경로 이름을 포함 요소의리스트를 돌려줍니다.

또 다른 방법은 href에 현재 경로 이름이 포함 된 모든 요소를 ​​반환하는 것입니다. attr() 대신 prop()이 사용되므로 상대 URL도 올바르게 해석됩니다.

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

CSS 선택기 ul#ui-ajax-tabs li a이 두 가지 이상과 일치하기 때문입니다. 선택자와 관련하여 구체적으로 시도해보십시오 (예 : ul#ui-ajax-tabs li:first-child a).

0

URL 형식이 ASP.NET과 같이 프로덕션에서 변경 될 수 있습니다./URL 끝 슬래시를 무시하면 더 잘 작동 할 수 있습니다.

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