2011-10-20 2 views
0

나는 href = ""속성의 문자열을 읽기 위해 JQuery에서 $(this).attr('href')을 사용합니다. 내가 링크의 그런 종류가 있습니다JQuery로 href 속성을 읽는 법

<a href="1"></a> 
<a href="2"></a> 
<a href="3"></a> 

파이어 폭스와 크롬이 제대로 나에게 코드를 반환합니다. IE 반환 : http://127.0.0.1/1

어떻게하면됩니까? DOM 요소를 통해

+2

IE의 어떤 버전을 사용하고 있습니까? 내 것은 IE 7+에서 잘 작동합니다. http://jsfiddle.net/8rdch/ –

+0

당신은 href가 상대 경로입니까? 어쩌면 당신은//',/2','/ 3'에있는 href를 바꿀 수 있습니다. –

+0

인터넷 익스플로러를 사용하고 있습니다. 8.0.76 – Dail

답변

3

네이티브 속성에 액세스 할 때 attr 함수를 사용할 필요가 없습니다. 당신은

기본적으로 (도메인 또는 쿼리 문자열이없는 HREF IE) 경로 이름을 얻기 위해 직접 앵커 요소의 속성을 사용할 수 있습니다 브라우저 사이의 불일치의 비트가있다 this.pathname

(일부 슬래시 선도 표시됩니다 pathname 및 기타는 그렇지 않음). 이 문제를 얻으려면, 단지 잠재적 선두 제거는 슬래시 :

this.pathname.replace(/^\//,'')

동작하는 예제 : 당신이 다른 답변을 선택하더라도 http://jsfiddle.net/jonathon/3ET6p/

, 난 당신이 개체의 기본 .href를 사용하는 것이 좋습니다 .


이 점에 특별히주의하십시오. 나는 IE6의 VM을 실행하고 모두 잘있다 :)

1

시도 : $(this)[0].href; 또는

결과는 여전히 동일하면 $(this)[0].getAttribute("href");, 당신이 숫자로 시작하지 뭔가를 사용하는 것이 좋습니다.

.

+1

jQuery 객체로 감쌀 필요조차 없습니다. 그냥'this.href'는 작동하고 약간의 처리를 저장합니다 :) –

+0

사실입니다. 설명하는 방법을 모르겠지만 어떻게 든 jQuery 객체에서 DOM 요소를 추출하는 방법을 보여 주려고했습니다. 그리고 ... 어, 결국 jQuery로 DOM 요소를 래핑 한 결과로 돌아 왔습니다. :디 – zvona

0

어떤 브라우저가 사용되고 있는지 확인하고 싶습니다. IE 인 경우 현재 도메인이 "127.0.0.1"인지 확인하십시오. 그렇지 않다면, @ 솔이 제안한 것을해라.