Frage Wie bekomme ich die Kinder von $ (this) selector?


Ich habe ein ähnliches Layout:

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

und möchte einen jQuery-Selektor verwenden, um das Kind auszuwählen img innerhalb der div beim Klick.

Um das zu bekommen divIch habe diesen Selektor:

$(this)

Wie kann ich das Kind bekommen? img mit einem Selektor?


2042
2017-11-20 19:44


Ursprung


Antworten:


Der jQuery-Konstruktor akzeptiert einen zweiten Parameter namens context mit dem der Kontext der Auswahl überschrieben werden kann.

jQuery("img", this);

Was ist das gleiche wie die Verwendung .find() so was:

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

Wenn die Imgs, die Sie wünschen, sind nur direkte Nachkommen des angeklickten Elements können Sie auch verwenden .children():

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

2687
2017-11-20 21:27



Du könntest auch benutzen

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

was würde alles zurückgeben imgs, die Nachkommen der div


444
2017-11-20 21:23



Wenn Sie den ersten brauchen img Das ist genau eine Ebene, die Sie tun können

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

127
2017-07-21 18:47



Wenn auf Ihr DIV-Tag unmittelbar das IMG-Tag folgt, können Sie auch Folgendes verwenden:

$(this).next();

71
2018-06-21 13:25



Das Direkte Kinder sind

$('> .child', this)

56
2017-07-16 20:07



Sie können alle img Element des Elternteils wie unten finden

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

Wenn Sie bestimmte img Element möchten, können Sie so schreiben

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

Dein div enthält nur ein img-Element. Also dafür ist unten rechts

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

Aber wenn dein div mehr img Element wie unten enthält

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

dann können Sie den oberen Code nicht verwenden, um den alt-Wert des zweiten img-Elements zu finden. So können Sie das versuchen:

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

Dieses Beispiel zeigt eine allgemeine Idee, wie Sie das tatsächliche Objekt im übergeordneten Objekt finden können. Sie können Klassen verwenden, um Ihr untergeordnetes Objekt zu unterscheiden. Das ist einfach und macht Spaß. d.h.

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

Sie können dies wie folgt tun:

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

und spezifischer als:

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

Sie können find oder children wie oben beschrieben verwenden. Für mehr besuchen Sie Kinder http://api.jquery.com/children/ und finde http://api.jquery.com/find/. Siehe Beispiel http://jsfiddle.net/lalitjs/Nx8a6/


36
2018-03-22 08:05



Ohne die ID des DIV zu kennen, könnte man den IMG wie folgt auswählen:

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

29
2017-11-20 19:56



Probieren Sie diesen Code aus:

$(this).children()[0]

27
2017-11-20 19:51