2010-08-31 49 views
1

我想選擇所有<li>在我的HTML中有<span>Google Map</span>在它並適用。選擇所有li與特定的<span>並獲得鏈接信息內

然後用jQuery獲取href的值。我嘗試通過jQuery文檔,但無法弄清楚。這可能嗎?

<li><span>Google Maps Staic Link:</span> 
<a target="_blank" href="**Value To Get**" rel="nofollow">Map</a></li> 

實際的HTML會是這樣的。

<li><span>Name</span>Newyork:</li> 
<li><span>Added:</span>23rd April</li> 
<li><span>Google Map Link:</span> 
<a target="_blank" href="**Value To Get**" rel="nofollow">Map</a> 
</li> 

從這我只想要一個與谷歌地圖鏈接。鏈接將改變,但範圍<span>Google Map Link:</span>不會改變。

回答

1
$('span:contains("Google Map")').next('a').attr('href'); 

,這將使你的所有的HREFs

+0

完全按照我的意願工作。太感謝了。 – esafwan 2010-08-31 08:40:48

+0

這隻會得到第一個發生,而不是數組。 – jAndy 2010-08-31 08:49:13

+0

在我的情況下......沒有陣列。對我來說好吧。 – esafwan 2010-09-01 11:10:52

1
$(function(){ 
    var href = $('li:has(span:contains(Google Map))').find('a').attr('href'); 
});​ 

,如果你希望不止一個occurence你會需要調用.each()的jQuery的數組對象。

無論如何,像這樣的選擇器看起來很奇怪,我建議使用.filter()無論如何。

+0

+1!第一個爲我工作,但是當你說不止一個事件發生時,這是最好的解決方案。也許方便將來使用。 – esafwan 2010-09-01 11:12:14

0
​$('span:contains("Google Map")').each(function(index){ 
    alert($(this).siblings(0).attr('href')); //Do whatever with href attr... 
});​​​​​​​​​