Question Comment obtenir les enfants du $ (ce) sélecteur?


J'ai une disposition similaire à ceci:

<div id="..."><img src="..."></div>

et aimerait utiliser un sélecteur jQuery pour sélectionner l'enfant img à l'intérieur de div sur clic.

Pour obtenir le divJ'ai ce sélecteur

$(this)

Comment puis-je obtenir l'enfant img en utilisant un sélecteur?


2042
2017-11-20 19:44


origine


Réponses:


Le constructeur jQuery accepte un 2ème paramètre appelé context qui peut être utilisé pour remplacer le contexte de la sélection.

jQuery("img", this);

Ce qui revient à utiliser .find() comme ça:

jQuery(this).find("img");

Si les imgs que vous désirez sont seulement descendants directs de l'élément cliqué, vous pouvez également utiliser .children():

jQuery(this).children("img");

2687
2017-11-20 21:27



Vous pouvez également utiliser

$(this).find('img');

ce qui reviendrait tout imgs qui sont les descendants de la div


444
2017-11-20 21:23



Si vous devez obtenir le premier img c'est en baisse d'un niveau, vous pouvez le faire

$(this).children("img:first")

127
2017-07-21 18:47



Si votre tag DIV est immédiatement suivi par la balise IMG, vous pouvez également utiliser:

$(this).next();

71
2018-06-21 13:25



le direct les enfants sont

$('> .child', this)

56
2017-07-16 20:07



Vous pouvez trouver tout l'élément img de div div comme ci-dessous

$(this).find('img') or $(this).children('img')

Si vous voulez un élément img spécifique, vous pouvez écrire comme ceci

$(this).children('img:nth(n)')  
// where n is the child place in parent list start from 0 onwards

Votre div contient un seul élément img. Donc, pour ce qui suit est juste

 $(this).find("img").attr("alt")
                  OR
  $(this).children("img").attr("alt")

Mais si votre div contient plus d'élément img comme ci-dessous

<div class="mydiv">
    <img src="test.png" alt="3">
    <img src="test.png" alt="4">
</div>

alors vous ne pouvez pas utiliser le code supérieur pour trouver la valeur alt du second élément img. Donc vous pouvez essayer ceci:

 $(this).find("img:last-child").attr("alt")
                   OR
 $(this).children("img:last-child").attr("alt")

Cet exemple montre une idée générale de la façon dont vous pouvez trouver l'objet réel dans l'objet parent. Vous pouvez utiliser des classes pour différencier votre objet enfant. C'est facile et amusant. c'est à dire.

<div class="mydiv">
    <img class='first' src="test.png" alt="3">
    <img class='second' src="test.png" alt="4">
</div>

Vous pouvez le faire comme ci-dessous:

 $(this).find(".first").attr("alt")

et plus spécifique comme:

 $(this).find("img.first").attr("alt")

Vous pouvez utiliser find ou children comme ci-dessus. Pour plus d'informations visitez les enfants http://api.jquery.com/children/ et trouve http://api.jquery.com/find/. Voir l'exemple http://jsfiddle.net/lalitjs/Nx8a6/


36
2018-03-22 08:05



Sans connaître l'ID de la DIV, je pense que vous pouvez sélectionner l'IMG comme ceci:

$("#"+$(this).attr("id")+" img:first")

29
2017-11-20 19:56



Essayez ce code:

$(this).children()[0]

27
2017-11-20 19:51



Façons de se référer à un enfant dans jQuery. Je l'ai résumé dans le jQuery suivant:

$(this).find("img"); // any img tag child or grandchild etc...   
$(this).children("img"); //any img tag child that is direct descendant 
$(this).find("img:first") //any img tag first child or first grandchild etc...
$(this).children("img:first") //the first img tag  child that is direct descendant 
$(this).children("img:nth-child(1)") //the img is first direct descendant child
$(this).next(); //the img is first direct descendant child

27
2018-01-25 10:51