2012-11-02 5 views
0

J'ai quelques HTML:Get élément ID par classe

<div id="bin"> 
    <span class="item1 selectMe">1</span> 
    <span class="item2 selectMe">2</span> 
    <span class="item3 dontSelectMe">3</span> 
</div> 

Je voudrais revenir un tableau avec les valeurs des éléments de portée qui contiennent la classe selectMe. Voilà ce que j'ai écrit:

var values = []; 
$('#bin span.selectMe').each(function() { 
    values.push($(this).text()); 
}); 

Cependant, lorsque j'imprime values à la console, il est toujours vide. Des pensées sur pourquoi je ne suis pas itérer à travers le bin?

+0

Utilisation '.html()' au lieu de '.text()'. – AndrewR

+1

@AndrewR cela devrait fonctionner aussi –

+2

Votre jQuery est-il dans un appel de document prêt? – j08691

Répondre

3

Ce que vous avez devrait travailler, mais voici une solution plus élégante:

var values = $('#bin span.selectMe').map(function() { 
    return $(this).text(); 
}).get(); 
+0

+ pour la solution améliorée –

+0

Un sélecteur plus simple serait: '$ ('# bin .selectMe')'. – jfriend00

+0

@ jfriend00 - Si je connaissais son balisage exact, alors vous avez raison. Je ne suis pas sûr qu'il nous ait tout montré, alors j'ai utilisé son sélecteur ... –

3

Ce qui suit devrait fonctionner, mais ce que vous collez parût ci-dessus aussi:

var values = $('#bin span.selectMe').map(function(){ 
    return $(this).html(); 
}); 
0
var values = []; 
$('#bin').find('span.selectMe').each(function() { 
    values.push($(this).text()); 
});