문제

jQuery에서 어떻게 선택합니까? <a> 어느 href가 현재 URL을 가리키고 있습니다

예를 들어:
url = http : //server/dir/script.aspx? id = 1

이것을 선택하고 싶습니다 <a>
<a href="/dir/script.aspx">...</a>

나는 이것을 시도했지만 작동하지 않습니다.

var url = window.location.href;
$('#ulTopMenu a["'+url+'"*=href]').addClass("selected");

아마도 잘못된 구문. 누구든지 올바른 방법을 알고 있습니까?

미리 감사드립니다

도움이 되었습니까?

해결책 3

감사합니다 Remy, 실제로는 작동하지 않았지만 가깝습니다.
여기 내 최종 코드가 있습니다

  var scriptname = GetUrlScriptname();
  $('#ulTopMenu a[href$="' + scriptname + '"]').parent().addClass('selected');

function GetUrlScriptname()
{
  var rex = new RegExp("\\/[^\\/]+\\.\\w+($|\\?)");
  var match = rex.exec(location.pathname);
  return match[0].substring(1);
}

다른 팁

선택한 탭 '패턴'을 해결하려고하는 것처럼 들립니다. 다음 코드로 직접 해결할 수 있음을 알았습니다.

var nav = location.pathname.substr(1).split('/', 2)[0] || '/';
if (nav) {
    $('#ulTopMenu a[href$="' + nav + '"]').parent().addClass('selected');
}

이는 기본적으로 URL이 현재 URL과 동일한 엔드로 끝나는 경우 선택된 클래스를 추가합니다. '유사한'URL을 조심해야하지만 실제로 유사한 URL이 많으면 서버 측 솔루션을 고려해야합니다.

(이 기술에 대해 얼마 동안 기사를 게시했습니다. 실제로 당신이하려는 일이라면 : http://leftlogic.com/lounge/articles/auto-selecting_navigation/)

귀하의 질문에 대한 답을 모르지만 그 선택기 구문이 유효합니까?

'#ulTopMenu a["http://www.foo.com"*=href]'

그런 것이 가능하다면 그것은

'#ulTopMenu a[href*="http://www.foo.com"]'
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top