Kod marży:
<div id="elements">
<div>
<a href="#">text</a>
<a href="#">text</a>
<a href="#">text</a>
</div>
<div>
<a href="#">text</a>
<a href="#">text</a>
<a href="#">text</a>
</div>
<div>
<a href="#">text</a>
<a href="#">text</a>
</div>
</div>
Proszę mi powiedzieć, jak mogę uzyskać tablicę wszystkich elementów div
, aby później można było zająć się szeregiem opcji?
Jak na przykład:
divs[0]
links[1]
Odpowiedzi:
6 dla odpowiedzi № 1var divs = $("#elements div");
var links = $("#elements div a");
- Jeśli chcesz elementy DOM, to możesz uzyskać do nich dostęp za pomocą stylu tablicy, na przykład
divs[0]
lublinks[2]
. - Jeśli chcesz uzyskać konkretny obiekt jQuery, możesz uzyskać do niego dostęp za pomocą
divs.eq(0)
lublinks.eq(1)
.
6 dla odpowiedzi nr 2
$("#elements div").eq(0) // first div
$("#elements div a").eq(1) // second anchor in group of divs
Bez .eq()
masz kolekcję elementów, .eq
po prostu wyodrębnia elementy.
1 dla odpowiedzi nr 3
wrapper = document.getElementById("elements");
divs = wrapper.getElementsByTagName("div");
links = [];
for (i = 0; i < divs.length; i++) {
links[i] = divs[i].getElementsByTagName("a");
}
divs będzie teraz tablicą div w środkutwoje "elementy" div. Odsyłacze są obecnie dwuwymiarowymi tablicami, gdzie pierwszy indeks odwołuje się do elementu div wewnątrz elementu div, a drugi indeks odnosi się do znaczników "a" wewnątrz tego elementu div.
links[2][1]
będzie odnosić się do elementu oznaczonego poniżej:
<div id="elements">
<div>
<a href="#">text</a>
<a href="#">text</a>
<a href="#">text</a>
</div>
<div>
<a href="#">text</a>
<a href="#">text</a>
<a href="#">text</a>
</div>
<div>
<a href="#">text</a>
<a href="#">text</a> //this one
</div>
</div>
1 dla odpowiedzi nr 4
Lub też, i uważam, że dokładniej to, o co prosiłeś:
$ ("# element div: eq (0) a: eq (1)")
0 dla odpowiedzi № 5
$("#elements a")
$("div a")
or $("a")
0 dla odpowiedzi № 6
Widzieć https://api.jquery.com/toArray/
$( "li" ).toArray()
Działa to świetnie w takich przypadkach jak
$( "li" ).toArray().each( function(li) {
console.log("do something with this list item", li);
})
lub jeśli naprawdę chcesz
$( "li" ).toArray()[0]