문제
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"]'
제휴하지 않습니다 StackOverflow