Vraag Hoe de kinderen van de $ (dit) selector te krijgen?


Ik heb een soortgelijke lay-out:

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

en zou een jQuery-selector willen gebruiken om het kind te selecteren img binnen in de div bij klikken.

Om de div, Ik heb deze selector:

$(this)

Hoe kan ik het kind krijgen img een selector gebruiken?


2042
2017-11-20 19:44


oorsprong


antwoorden:


De jQuery-constructor accepteert een 2e parameter genaamd context die kan worden gebruikt om de context van de selectie te negeren.

jQuery("img", this);

Dat is hetzelfde als gebruiken .find() soortgelijk:

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

Als de imgs die je wenst zijn enkel en alleen directe afstammelingen van het geklikte element, u kunt ook gebruiken .children():

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

2687
2017-11-20 21:27



Je zou ook kunnen gebruiken

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

die alles zou teruggeven imgs die afstammelingen zijn van de div


444
2017-11-20 21:23



Als je de eerste nodig hebt img dat is precies één niveau omlaag, wat je kunt doen

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

127
2017-07-21 18:47



Als uw DIV-tag onmiddellijk wordt gevolgd door de IMG-tag, kunt u ook het volgende gebruiken:

$(this).next();

71
2018-06-21 13:25



De direct kinderen is

$('> .child', this)

56
2017-07-16 20:07



Je kunt alle img-elementen van bovenliggende div vinden, zoals hieronder

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

Als u specifiek img-element wilt, kunt u op deze manier schrijven

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

Je div bevat slechts één img-element. Dus hieronder is het goed

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

Maar als je div meer img-elementen bevat zoals hieronder

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

dan kun je de bovenste code niet gebruiken om de altwaarde van het tweede img-element te vinden. Dus je kunt dit proberen:

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

Dit voorbeeld laat een algemeen idee zien hoe u het werkelijke object in het bovenliggende object kunt vinden. U kunt klassen gebruiken om uw onderliggende object te onderscheiden. Dat is gemakkelijk en leuk. d.w.z.

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

U kunt dit als volgt doen:

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

en meer specifiek als:

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

U kunt zoeken of kinderen gebruiken als bovenstaande code. Voor meer bezoek Kinderen http://api.jquery.com/children/ en vind http://api.jquery.com/find/. Zie voorbeeld http://jsfiddle.net/lalitjs/Nx8a6/


36
2018-03-22 08:05



Zonder de ID van de DIV te kennen, denk ik dat je de IMG als volgt kunt selecteren:

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

29
2017-11-20 19:56



Probeer deze code:

$(this).children()[0]

27
2017-11-20 19:51



Manieren om naar een kind in jQuery te verwijzen. Ik vatte het samen in het volgende jQuery:

$(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



U kunt een van de volgende methoden gebruiken:

1 vind (): 

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

2 kinderen(): 

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

19
2017-08-14 11:29