3 votes

Sélectionner un descendant en jQuery si j'ai déjà une référence à un élément

J'ai le HTML suivant :

    test

    test

J'ai une référence à #myTable dans la variable $myTable.

Comment puis-je sélectionner tous les descendants des balises div sans réutiliser la chaîne #myTable (c'est-à-dire en utilisant uniquement l'objet $myTable) ?

Pour clarifier, en supposant que cet exemple fonctionne :

$('#myTable div')

... cela ne répond pas à mes critères, car je ne veux pas retaper #myTable.

De plus, je préférerais ne pas devoir spécifier chaque parent dans la hiérarchie comme ceci :

$myTable.children('tr').children('td').children('div')

J'ai essayé d'utiliser

$myTable.children('div')

... mais cela semble ne sélectionner que les enfants immédiats, ce que ne sont pas les éléments div.

Je veux utiliser quelque chose de concis comme ceci :

$myTable.descendants('div')

5voto

Darko Z Points 16570

Vous pouvez utiliser la fonction find dans jQuery.

$myTable.find('div');

Alternativement, vous pouvez spécifier la portée comme ceci :

$('div', $myTable);

les deux devraient renvoyer le même ensemble

4voto

tvanfosson Points 268301

La fonction find fait exactement ce que vous voulez.

$myTable.find('div');

1voto

bozdoz Points 4356

Vous pourriez rencontrer des difficultés à tester les solutions suggérées car vous avez inclus le "#" dans votre attribut id. Il devrait être :

Et vous pouvez simplement utiliser $('div', $myTable) pour sélectionner les divs descendants.Consultez la solution ici

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X