Wie bekomme ich ein untergeordnetes Element nach Index in Jquery?


72
<div class="second">
    <div class="selector" id="selFirst"></div>
    <div class="selector" id="selSecond"></div>
    <div></div>
</div>

Wie bekomme ich #selFirst mit dem Elementindex, nicht mit der ID?

diese:

var $selFirst = $(".second:nth-child(1)");
console.log($selFirst);

kehrt zurück:

jQuery(div.second)

Antworten:


193

Wenn Sie das untergeordnete Element kennen, an dem Sie interessiert sind, ist es das erste:

 $('.second').children().first();

Oder nach Index zu finden:

 var index = 0
 $('.second').children().eq(index);

5
Achtung: eq () ist 0-indexiert, index () ist 1-indiziert.
Blattlaus

2
Die Frage ist allgemeiner. Auswahl nach Index. Es geht nicht darum, wie man das erste Kind auswählt.
Alexander Volkov

@ AlexanderVolkov beachten Sie das zweite Beispiel, das den Index verwendet
Rich O'Kelly

17

Es gibt folgende Möglichkeiten, um das erste Kind auszuwählen

1) $ ('. Second div: first-child')
2) $ ('. Second *: first-child')
3) $ ('div: erstes Kind', '.sekste')
4) $ ('*: erstes Kind', '.sekste')
5) $ ('. Zweiter Teil: n-tes Kind (1)')
6) $ ('. Second'). Children (). First ()
7) $ ('. Second'). Children (). Gl. (0)

Je mehr Auswahlmöglichkeiten Sie haben, desto mehr Upvotes erhalten Sie!
Sarsaparilla

2
Die Frage ist allgemeiner. Auswahl nach Index. Es geht nicht darum, wie man das erste Kind auswählt.
Alexander Volkov

4

Sie können das erste Element über die Indexauswahl erhalten:

$('div.second div:eq(0)')

Code: http://jsfiddle.net/RX46D/


1
Indexselektoren sind schlecht. Verwenden Sie stattdessen Methoden, sie sind schneller
Raynos


1

Gibt das n-te Kind nicht eher Geschwister als Kinder zurück?

var $selFirst = $(".second:nth-child(1)");

gibt das erste Element mit der Klasse '.second' zurück.

var $selFirst = $(".selector:nth-child(1)");

sollte Ihnen das erste Geschwister der Klasse '.selector' geben


-7

var node = document.getElementsByClassName("second")[0].firstElementChild

Haftungsausschluss: Browser-Konformität aktiviertgetElementsByClassName und firstElementChildwackelig. DOM-Shims beheben diese Probleme.


Beachten Sie, dass wenn das OP nach dem ersten DIV sucht, dies nicht funktioniert, wenn HTML-Elemente zwischen .second und #selFirst vorhanden sind.
mbx-mbx

Wo hat er "first DIV" gesagt? Wo hat er gesagt "es wird Elemente zwischen .second und #selFirst geben"
Raynos
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.