2014-09-02 54 views
0

我有以下HTML結構:獲取的使用jQuery找到鏈接href值()

... 
... 
    <div id="related-links"> 
     <ul> 
      <li class="first"><a href="some-link"></a></li> 
      <li><a href="some-link"><a href="some-link"></a></li> 
      <li><a href="some-link"><a href="some-link"></a></li> 
      <li><a href="some-link"><a href="some-link"></a></li> 
      <li><a href="some-link"><a href="some-link"></a></li> 
     </ul> 
    </div> 
... 
... 

我怎樣才能在javascript所有li元素href價值?

我目前正在嘗試此操作,但總是可能沒有五個li

var related_links_body = $('div.related-links ul'); 
var related_links = []; 
related_links[0] = related_links_body.find("li.first a").attr("href"); 
related_links[1] = related_links_body.find("li.first").next().find("a").attr("href"); 
related_links[2] = related_links_body.find("li.first").next().next().find("a").attr("href"); 
related_links[3] = related_links_body.find("li.first").next().next().next().find("a").attr("href"); 
related_links[4] = related_links_body.find("li.first").next().next().next().next().find("a").attr("href"); 
+0

如果在頁面上沒有其他鏈接,然後document.links將包含所有這些 – mplungjan 2014-09-02 16:09:22

+0

這是一個合理的問題,我也摸索出這樣的非優化的方式。不過,我想知道爲什麼這是低調。 – xan 2014-09-02 16:13:35

+0

有些人這樣做 – mplungjan 2014-09-02 16:24:05

回答

2

使用each()只是它們聚集:

var related_links = []; 

$('#related-links ul li a').each(function() 
{ 
    related_links.push($(this).attr('href')); 
}); 

Documentation

+0

很高興看到你修復了id選擇器,不像原來的答案。 – epascarello 2014-09-02 16:24:56

0

首先你的選擇是錯誤的,你用的是類選擇,而不是一個ID選擇

$('div.related-links ul') 

需要成爲

$('div#related-links ul') 

$('#related-links ul') 


您可以使用jQuery map得到的HREF到一個數組。

var related_links_body = $('#related-links ul'); 
var anchors = related_links_body.find("li a"); 
var related_links = anchors.map(function() { return this.href; }).get(); 

JSFiddle