125 votes

jQuery - sélection d'éléments à l'intérieur d'un élément

disons que j'ai un balisage comme celui-ci :

 <div id="foo">
  ...
  <span id="moo">
    ...
  </span>
  ...
</div>

et je veux sélectionner #moo.

pourquoi $('#foo').find('span') fonctionne, mais pas $('span', $('#foo')); ?

158voto

TheSuperTramp Points 5641

Vous pouvez utiliser n'importe lequel d'entre eux [en commençant par le plus rapide]

 $("#moo") > $("#foo #moo") > $("div#foo span#moo") > $("#foo span") > $("#foo > #moo")

Regarde

97voto

Pranay Rana Points 69934

En fait, $('#id', this); sélectionnerait #id à n'importe quel niveau descendant, pas seulement l'enfant immédiat. Essayez plutôt ceci :

 $(this).children('#id');

ou alors

 $("#foo > #moo")

ou alors

 $("#foo > span")

33voto

Vous pouvez utiliser l' find pour sélectionner un élément dans un autre. Par exemple, pour trouver un élément avec l'id txtName dans un div particulier, vous pouvez utiliser comme

 var name = $('#div1').find('#txtName').val();

11voto

hunter Points 33850

Pourquoi ne pas simplement utiliser :

 $("#foo span")

ou alors

 $("#foo > span")

$('span', $('#foo')); fonctionne bien sur ma machine ;)

9voto

Cody Points 1198

Regardez ici -- pour interroger un sous-élément d'un élément :

$(document.getElementById('parentid')).find('div#' + divID + ' span.child');

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