2012-07-28 3 views
0

내가 예를 들어 '구글'이 포함되어 다른 URL로 URL의 시작을 변경하는 페이지에있는 모든 하이퍼 링크를 찾아 일부 자바 스크립트가 있습니다. jQuery를 - 사용하여 하이퍼 링크에 클래스를 추가하는 문제 '각'

나는 그러나 내가 JS 콘솔에서 '정의되지 않은'오류를 많이 얻고,이 영향을받는 링크에 클래스를 추가하려합니다. 하이퍼 링크의 내용을 보여주는 alert ($ (this) .innerHTML))을 시도했습니다. clases와 기타 등등. 그러나 어떤 이유로 저는 수업을 추가 할 수 없습니다. 나는 또한 this.className + = "socks"를 사용해 보았습니다. 또한 정의되지 않은 오류이 발생합니다. 나는 내가 간단한 것을 놓치고 있다고 생각한다!

또한 검색에 정규식을 사용하는 방법이, 나는 자바 스크립트에 약간 새로운입니다.

여기 내 코드입니다 :

$("a[href*='google']").each(function(){ 
     this.href = this.href.replace('http://www.google.co.uk','http://www.ask.com'); 
     this.href = this.href.replace('http://www.google.com','http://www.ask.com'); 
     $(this).addClass("socks"); 
    }); 
어떤 도움 주셔서 대단히

감사합니다!

+1

이 코드 줄에서 정의되지 않은 오류가 발생 했습니까? – Lix

+0

이 문제를 조사한 결과이 코드로 인해 오류가 발생하지 않은 것으로 나타났습니다. JS 콘솔 기록을 삭제하는 것을 잊었습니다. 여전히 하이퍼 링크 – Chris

+0

에 새 클래스를 추가하지 않는 코드는 사용자가 게시 된 코드는 잘 작동합니다. 나는 그것으로 잘못된 것을 볼 수 없다. 주위에 숨어있는 다른 오류가 없다고 확신합니까? – Lix

답변

2

가에 오류가 없다 (이 경우, 당신은 쉽게 디버깅을 위해 jQuery를의 소위 비 축소 된 버전을 사용하십시오)

http://jsfiddle.net/p7Sgj/

이보기 : 내가 볼 수있는이 코드.

+0

왜 비어있게 보입니까? : P – Lix

+0

권자, 거기에 아무 것도 필요하지 않았다 : D 그것은 다소 간단한 스크립트였다. –

+0

실제로 링크를 흰색으로 만드는 것에 대해 이야기하고있었습니다. P – Lix

2

대신 this.href를 사용하는

$("a[href*='google']").each(function(){ 

    var href = $(this).attr('href'); 
    href.replace('http://www.google.co.uk','http://www.ask.com'); 
    href.replace('http://www.google.com','http://www.ask.com'); 
    $(this).attr('href', href); 
    $(this).addClass("socks"); 
}); 

을 시도합니다. 나는 ... 당신의 코드가 addClass 부분에 도달하지 않은 추측 또한

(파이어 폭스의 경우) 사용 불을 지르고 또는 크롬 개발자 도구 (크롬의 경우) 디버깅. 당신은 단순히 시계를 추가, 중단 점을 설정할 수 있습니다 등 ...

2

HTML 코드는

<a href="http://www.google.co.uk">Hello</a> 
<a href="http://www.google.com">World</a> 

입니다 그리고 당신의 CSS는

.socks { 
    color:#f00; 
} 

그런 코드가 작동해야 좋은 경우.

http://jsfiddle.net/k93TZ/2/ 여기서 일하는.

귀하의 HTML 또는 CSS 코드 일 수 있습니다.

관련 문제