2010-08-31 21 views
1

Je veux choisir tous les <li> dans mon code HTML qui ont le <span>Google Map</span> dedans et s'appliquent.Sélectionnez tout li avec un <span> particulier et obtenir des informations de lien au sein de

Et obtenez la valeur dans href avec jQuery. J'ai essayé de passer par les docs de jQuery mais je n'ai pas pu le comprendre. Est-ce possible?

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

Le code HTML actuel ressemblera à ceci.

<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> 

De cela, je ne veux que celui avec Google Map Link. Le lien changera mais l'intervalle <span>Google Map Link:</span> ne changera pas.

Répondre

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

qui vous donnera un objet tableau jQuery de tous les HREF

+0

J'ai travaillé exactement comme je le voulais. Merci un million. – esafwan

+0

Ceci obtiendrait seulement la première occurrence, pas un tableau. – jAndy

+0

dans mon cas ... il n'y a pas de tableau. Donc ok pour moi. – esafwan

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

Vous auriez besoin d'invoquer .each() si vous attendez plus d'une occurence.

Quoi qu'il en soit, les sélecteurs comme celui-ci semblent si bizarre et étrange, je suggère d'utiliser .filter() de toute façon.

+0

+1! Le premier a fonctionné pour moi, mais quand vous avez dit plus d'un événement, c'est la meilleure solution. Peut-être utile pour un usage futur. – esafwan

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