2014-06-24 3 views
3

J'ai un écouteur d'événements, cliquez ci-dessous:élément Rechercher des objets correspondant jQuery

$(".clickable").click(function (e) { 

    var results= $(e.currentTarget).closest('div.set').find('.clickable'); 
     // returns 
     //[<label for=​"thumbnail" class=​"clickable">​1 Malaysia​</label>​, 
     //<div class=​"thumbnail clickable">​…​</div>​] 

    var label = $(results).find('label'); // returns [] (empty list) 

} 

Mon problème est, comment puis-je sélectionner l'élément label dans la liste results? Merci !

+0

Quelle est votre HTML? –

+1

De même, selon toute vraisemblance 'e.currentTarget' devrait être' this'. –

Répondre

2

Essayez d'utiliser .filter() au lieu de .find(),

var label = results.filter('label'); 

.find() recherchera les descendants, mais ici nous avons besoin de filtrer l'élément requis de la collection, utilisez donc .filter(selector) ici.


Et vous pouvez aussi avoir simplement utilisé comme Satpal dit que,

var results= $(e.currentTarget).closest('div.set').find('label.clickable'); 
+0

Merci! fonctionne parfaitement ! – pekcheng

+1

@Unicorn, Juste curieux Pourquoi pas 'var results = $ (e.currentTarget) .closest ('div.set'). Find ('label.clickable');'? – Satpal

+0

@Unicorn Heureux d'aider ..! – Balachandran

Questions connexes