2010-12-10 2 views
0

는 자바 스크립트 jQuery를에 문 구문은 (자바 스크립트 jQuery를 아주 새로운) .each 기능

는 특별히 기능을 .each 수 있다면? 그렇다면 구현에 문제가 있습니까? 페이지가 내 도메인에서 (오히려 CMS를 개발 공간 내부보다) 인 경우에만 내가 원하는 무엇

var string2 = "domain"; 
var mainpath = (window.location.href); 

if (mainpath.indexOf(string2)) { 

    $("#topnav a").each(function(){       
     var thishref = $(this).attr('href');  
     $(this).attr({href: thishref + '?lnkid=tnav'}); 
    }); 

    $("#nav a").each(function(){        
     var thishref = $(this).attr('href');  
     $(this).attr({href: thishref + '?lnkid=pnav'}); 
    }); 

} 

는 if 문 안에있는 코드를 실행한다. - 고마워요

+0

엄격하게 귀하의 질문과 관련,하지만 당신은' – Gareth

+0

문은 다른 문을 포함 할 수있는 경우 window.location.host', 예를 들어, 직접 비교할 수 없음 블록 문은 차례로 0 개 이상의 명령문 목록을 포함합니다. –

답변

0

확인합니다. 당신은 기본적으로 그것을 올바르게하고 있습니다. 제안 :

함께 명시해야합니다 당신, 그래서 if 조건부 실행하는 코드를 사용하여 완벽하게 유효한

if (mainPath.indexOf(string2) !== -1) {... 

} 
0

네, 아무 문제가 없습니다. 하지만 쉽게 다음 URL에 속은 수 있습니다 : 그것은 할 수

http://www.other.tld/?domain

0

같은 것을 할 조건합니다. 당신의 상태에 문제가있는 것 같습니다 비록 :

if (mainpath.indexOf(string2)) 

는 MainPath 내에서 문자열 2의 지수는 실행에서 코드를 방지 할 수 0 수 있습니다 그것은 당신이 원하는 것을 확실히 아니다.

이 같은

오히려 시험 :

$("#topnav a").each(function(){       
    this.search = 'lnkid=tnav';  
}); 

href를 점점 관련된 로터리 방식에 대한 필요가 없습니다 :

제안으로
if (mainpath.indexOf > -1) ... 
+0

이 경우 (window.location.href의 보장 된 출력으로 인해) 이것은 도메인이 "http"인 경우에만 발생합니다. 따라서이 값은 언급 할만한 가치가 있지만 특히 여기서는 문제가 아닙니다. – Gareth

+0

@Gareth Granted, 이것은 거의 없을 것입니다 이제까지 그의 도메인 httpfoo의 이름을 짓겠습니까? 결국 이것이 쉽게 간과 할 수있는 실패의 원천이 될 수 있으므로 올바른 방법으로해야합니다. 그렇죠? – aefxx

0

, 당신은이 같은 각 링크에 쿼리를 추가 할 수 있습니다 속성을 추가하고, 다시 넣습니다.

데모 : http://jsfiddle.net/3ZpMz/1/

+0

감사합니다. 나는이 부분에 대해서도 고심했다. 나는 왜 그것이 어떻게 작동하는지 알았 으면 좋겠지 만, 그것이 잘 작동하는 것을 볼 수 있습니다. – Kat