• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Nadawanie id kolejnym elementom na stronie z poziomu jquery [BŁĄD]

Object Storage Arubacloud
+2 głosów
224 wizyt
pytanie zadane 20 lipca 2022 w JavaScript przez Piotrek2713 Mądrala (5,380 p.)
zamknięte 20 lipca 2022 przez Piotrek2713

Napisałem kod, który powinien ponadawać kolejne id divom, które są dziećmi elementu main, kolejno c0, c1, c2, aż do c11

for(i=0; i<12; i++)
{
    var id_diva = 'c'+i;
    $('main > div').nextAll().attr('id', id_diva);
}

Ale po sprawdzeniu w inspektorze każdy div ma id="c11"

komentarz zamknięcia: Znalazłem rozwiązanie
komentarz 20 lipca 2022 przez VBService Ekspert (253,340 p.)

Nie potrafię ogarnąć tej funkcji. Mógłbyś mi pomóc?

zamień na np.  jQuery.each()

$('main > div').each(function(index, element) {
  $(element).attr('id', index);
});

 

1 odpowiedź

+1 głos
odpowiedź 20 lipca 2022 przez Wiciorny Ekspert (270,170 p.)

Wybierasz wszystkie elementy które są dziećmi dla main ( w tym wszystkie divy) 
 

 $('.main > div') // moze dodaj kropke jak po klasie 

main to nie element sam w sobie, a zapewne klasa elementu stąd kropka, jesli ma id to #main

komentarz 20 lipca 2022 przez Wiciorny Ekspert (270,170 p.)
edycja 20 lipca 2022 przez Wiciorny
przeczytaj jeszcze punkt z natywnością i tym dlaczego używana jest tablica aby iterować po wartościach a nie kluczach do wartości... to celowy zabieg, tym bardziej jeśli w  przyszłości ktoś operuje na obiektach które nie gwarantują kolejności a wykorzystuje kod asynchroniczny dodatkowo.
Też info co nie co https://developer.mozilla.org/en-US/docs/Web/API/NodeList ale o ile w google regdability sa informacje o tym tak tu nie ma
komentarz 20 lipca 2022 przez VBService Ekspert (253,340 p.)
edycja 20 lipca 2022 przez VBService

no i jest tablica

const childrens = [...document.querySelectorAll('main > div')];
childrens.map((e, i) => { e.id = i });
komentarz 20 lipca 2022 przez Wiciorny Ekspert (270,170 p.)
napisać to można na n+1 sposobów, bo kilka by się znalazło, niemniej jednak to co podałeś " że można tak z query selektor" ni jak sie ma do poruszonego tematu i dalej polecam zapoznać się z tym, dlaczego to nie do końca dobre rozwiązanie, a nie że nie działa :)
komentarz 20 lipca 2022 przez VBService Ekspert (253,340 p.)

Nie wiem o co Tobie chodzi, czym się różni Twój

const childrens = container.querySelectorAll('main > div');

// ...

var arrOfChild = [...childrens];

od tego

const childrens = [...document.querySelectorAll('main > div')];
childrens.map((e, i) => { e.id = i });

 

że nie napisałem

const childrens = container.querySelectorAll('main > div');

// ...

var arrOfChild = [...childrens];
arrOfChild.forEach(...);

 

komentarz 20 lipca 2022 przez Wiciorny Ekspert (270,170 p.)

document.querySelectorAll('main > div').forEach((element, index) => {

  element.id = index;

})

podałeś to i o tym mówimy i do tego się odnosze, a nie do kolejnych poprawek, po poprawkach które w kolejnym zadaniu robisz, gdy ktoś CI zwraca uwagę, w  linku natomiast był przecinek/kropka na końcu istotnie następne poprawki już są identyczne, ale tez nie do końca bo map jest  lazy loaded. 

I nie marnuj czyjegoś czasu na bezsensowne dyskusje które nic nie wnoszą i nie poruszają nawet tego co opisane bylo w temacie lub komentarzu do tematu, a jak powtarzam, kolejny raz "poprawiasz" poprawkę albo edycje robisz czegoś twierdząc usilnie że to pierwowzór

I ja tu nic nie odnosze sie do tego, ze twoje implementacje sa złe, bo nie o to byl komentarz. 

 

Podobne pytania

0 głosów
2 odpowiedzi 149 wizyt
0 głosów
0 odpowiedzi 70 wizyt
pytanie zadane 9 października 2020 w JavaScript przez Psz3mo Mądrala (5,030 p.)
0 głosów
2 odpowiedzi 252 wizyt
pytanie zadane 9 kwietnia 2018 w JavaScript przez pawelwch Użytkownik (880 p.)

92,576 zapytań

141,426 odpowiedzi

319,650 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...