2014-01-14 33 views
0

我試圖獲取錨標記的「href」內容,但是我不能。在這裏,我張貼代碼:獲取href內容並替換JQuery中的()

HTML內容:

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

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

JQuery的內容:

$('.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'); 
}); 

我想,當你點擊<a href='#2'>2</a>var s = "featured"。但是當我使用前面的函數時,它返回一個未定義的值。我的功能有什麼問題?

謝謝!

回答

2

$('li.selected a')返回一個jQuery對象,而不是DOM元素,因此它沒有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