2010-11-13 4 views
3

Mon objectif est de trouver un élément dans un contexte, dans ce cas, un ensemble d'éléments HTML jQuery.
Je suis facile, mais pourquoi échoue-t-elle?Essayer de trouver un élément dans un contexte sur jQuery

s= "<h3 id='boi'> Oi putinho </h3> <p sub='a#b'> Oi oaosidoias aosd asoid aosidoi asodi sa </p>" 

j(':first') // => [html] 
j(s) // => [h3#boi, <TextNode textContent=" ">, p] 
j(':first', j(s)) // => [] ?! Fail 

ref: http://api.jquery.com/jQuery/#expressioncontext

Répondre

3

Utilisez .filter.

$(s).filter(':first') 

Ou tout simplement

s.filter(':first') 
+0

Je continue à confondre cette fonction en faveur de .find(), Tnxs –

3

Si vous voulez que le premier, vous pouvez l'obtenir par son index à l'aide jQuery's .eq() method.

j(s).eq(0); // Get wrapped element at index 0 (first item) 

Ou si vous voulez juste l'élément DOM non emballés, utilisez jQuery's .get() method.

j(s).get(0); // Get DOM element at index 0 (first item) 

... ou en utilisant la notation en crochet.

j(s)[ 0 ]; // Get DOM element at index 0 (first item) 

Vous pouvez également obtenir une gamme d'entre eux using .slice().

j(s).slice(0, 2); // Get the first two elements, wrapped in jQuery 

Si vous vouliez à l'aide d'un sélecteur, see @meder's answer.

+0

+1 Très complet et fonctionnerait pour mon exemple! Mais dans mon cas le sélecteur que je voulais était plus complexe, je choisis: d'abord pour être simple: P –

+0

': d'abord' est probablement un peu plus lent - j'irais personnellement avec cette réponse –

Questions connexes