2014-01-14 4 views
0

) 앵커 태그의 "href"내용을 가져 오려고하지만 그럴 수 없습니다.JQuery에서 href 내용 가져 오기 및 바꾸기 (

HTML 내용 :

<li class="selected"><a href="#featured">Feat.</a></li> 

<div class="page"><a href="#2">2</a></div> 

JQuery와 내용 : 저는 여기에 코드를 게시하면 <a href='#2'>2</a> 클릭하면

$('.page a').click(function(e){ 
      e.preventDefault(); 
      //the following replace works fine 
      var t = this.href.replace(/http:\/\/.*\/#(.*)/, '$1'); 
      var p = $(this).closest('div'); 
      //the following replace didn't work 
      var s = $('li.selected a').href.replace(/http:\/\/.*\/#(.*)/, '$1'); 
}); 

내가 원하는 당신은 var s = "featured"를 얻을. 그러나 이전 함수를 사용할 때 정의되지 않은 값을 반환합니다. 내 기능에있어 무엇이 잘못 되었습니까?

감사합니다.

답변

2

$('li.selected a')은 DOM 요소가 아닌 jQuery 객체를 반환하므로 href 속성이 없습니다. 변경 대상 :

var s = $('li.selected a')[0].href.replace(/http:\/\/.*\/#(.*)/, '$1'); 
+0

@Barmar! 이제 작동합니다. : D – Victor

+0

jQuery 객체의 속성을 수정하려면 ['.attr()'] (http://api.jquery.com/attr/#attr2)를 사용할 수 있습니다. DOM 객체의'href' 속성은 더 간단하고 빠릅니다. – Kat

+0

차이점이 있습니다. '.attr ('href')'는 DOM으로부터 리터럴 href 속성을 얻지 만,'.href'는 해석 된 URL을 얻습니다. – Barmar