2010-08-31 54 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... 
});​​​​​​​​​