2009-09-22 8 views

Répondre

4
$('#start') 
    .parent()  // gets one up 
    .find('span') // gets the span element 

same code utilisant jsbin bac à sable


Note:

vous ne pouvez pas utiliser prev() car il ne reçoit la balise précédente, et la durée, de la balise d'ancrage est le précédent n'est pas le précédent du précédent

de jQuery Documentation

Obtient un ensemble d'éléments contenant les frères et sœurs précédents uniques de chacun des ensembles d'éléments correspondants. Utilisez une expression facultative pour filtrer l'ensemble correspondant. Seul le frère ou la sœur immédiatement précédent est renvoyé, et non tous les frères et sœurs précédents.

prev([filter]) 

le filtre est de filtrer si la balise précédente contient plus d'un, comme:

<div> 
    <span></span> 
    <a></a> 
</div> 
<a id="a2"></a> 

pour obtenir la durée que vous utilisez:

$('#a2').prev('span') 
+0

pourquoi $ ('# start'). Prev ('span') ne fonctionne pas? – omg

+0

ajouté à la réponse pourquoi vous ne pouvez pas l'utiliser :) – balexandre

+0

Cochez ma réponse, vous obtiendrez le premier intervalle derrière votre élément, à condition qu'il s'agisse d'un frère ou d'une sœur. – Anthony

0

étrange, il semble que prevAll recule, en commençant par le premier juste derrière l'élément de départ et en reculant. Ça a du sens, je suppose. De toute façon, ce qui suit a fonctionné pour moi:

//jquery : 

$(document).ready(function(){ 
    $("#start").prevAll("span:first").css("font-weight", "bold"); 
    }); 

// html: 


<span>This is the span I don't want to select</span> 
<span>This is the span I want to select</span> 
<div>something here</div> 
<a id="start">Stuff</a>