2412 Stimmen

Wie erhält man die Kinder des $(this)-Selektors?

Ich habe ein ähnliches Layout wie dieses:

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

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

Um die div Ich habe diesen Selektor:

$(this)

Wie kann ich das Kind dazu bringen img einen Selektor verwenden?

2977voto

Simon Punkte 37405

Der jQuery-Konstruktor akzeptiert einen zweiten Parameter namens context die verwendet werden kann, um den Kontext der Auswahl außer Kraft zu setzen.

jQuery("img", this);

Das ist dasselbe wie die Verwendung von .find() wie diese:

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

Wenn die gewünschten Imgs seulement direkten Nachfahren des angeklickten Elements, können Sie auch .children() :

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

589 Stimmen

Was auch immer es wert ist: jQuery("img", this) wird intern umgewandelt in: jQuery(this).find("img") Also ist die zweite Variante sogar etwas schneller :)

494voto

philnash Punkte 63011

Sie können auch Folgendes verwenden

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

die alle img s, die Abkömmlinge der div

1 Stimmen

Im Allgemeinen scheint es so zu sein, dass $(this).children('img') wäre besser. z.B. <div><img src="..." /><div><img src="..." /></div></div> weil der Benutzer vermutlich nach Bildern der ersten Ebene suchen möchte.

148voto

rakslice Punkte 8334

Wenn Sie den ersten img die genau eine Ebene tiefer liegt, können Sie

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

82voto

Roccivic Punkte 996

Wenn Ihr DIV-Tag unmittelbar von einem IMG-Tag gefolgt wird, können Sie auch dieses verwenden:

$(this).next();

17 Stimmen

.next() ist sehr anfällig. Wenn Sie nicht garantieren können, dass das Element immer das nächste Element ist, sollten Sie besser eine andere Methode verwenden. In diesem Fall ist das IMG ein Nachkomme, nicht ein Geschwister des div.

78voto

Rayron Victor Punkte 2328

Le site direkt Kinder ist

$('> .child-class', this)

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X