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

question-closed document.getElementById gdy id jest zmienne

Object Storage Arubacloud
0 głosów
811 wizyt
pytanie zadane 18 grudnia 2018 w JavaScript przez Bartłomiej Bolesta Obywatel (1,630 p.)
zamknięte 28 lutego 2019 przez Bartłomiej Bolesta

Tworzę iterację, która powinna działać, ale coś nie przechodzi i nie mogę dojść czemu. W momencie, gdy spróbuję zrobić kod dla pojedynczego elementu w celach testowych, dopisując do nazwy po prostu cyfrę to działa:
 

<script>
	document.getElementById("buttonmin6").addEventListener("click", function(){
	document.getElementById("inputquantity6").value = "1";
});
</script>


Ale gdy wprowadzam iterację, coś nie przechodzi. Nic się nie dzieje. Nie wiem gdzie robię błąd:
 

<script>
	for (let i=3; i<30; i++) {
		document.getElementById("buttonmin"+i).addEventListener("click", function(){
		document.getElementById("inputquantity"+i).value = "1";
}});
</script>

 

komentarz zamknięcia: rozwiązane

1 odpowiedź

+1 głos
odpowiedź 18 grudnia 2018 przez niezalogowany
wybrane 18 grudnia 2018 przez ScriptyChris
 
Najlepsza

Pomyliłeś nawiasy powinno być:

 

<script>
    for (let i=3; i<30; i++) {
        document.getElementById("buttonmin"+i).addEventListener("click", function(){
        document.getElementById("inputquantity"+i).value = "1";
});
}
</script>

 

komentarz 18 grudnia 2018 przez Bartłomiej Bolesta Obywatel (1,630 p.)
0.o, żyłka mi pęknie xD. Ponad godzinę siedziałem i internet przeszukiwałem w poszukiwaniu odpowiedzi jakich niuansów nie poznałem na temat iteracji, że to nie działa, a tu głupie nawiasy.

Dzięki!
1
komentarz 18 grudnia 2018 przez ScriptyChris Mędrzec (190,190 p.)

Gdybyś otworzył konsolę przeglądarki (klawisz F12), to zobaczyłbyś poniższy błąd ze wskazaniem na miejsce wystąpienia w kodzie :)

Uncaught SyntaxError: Unexpected token }

1
komentarz 18 grudnia 2018 przez Tomek Sochacki Ekspert (227,510 p.)
Plus do tego pracuj w dobrym edytorze, a nie w notatniku :) Każdy IDE czy lepszy edytor Ci to od razu podświetli + zapnij sobie jakiś linter, warto od początku uczyć się dobrych praktyk.
komentarz 18 grudnia 2018 przez niezalogowany
Czy takie rozwiązanie nie powoduje opóźnień w wywoływaniu zdarzeń? Zawsze wszystkie zdarzenie będą wyłapane?
komentarz 18 grudnia 2018 przez ScriptyChris Mędrzec (190,190 p.)

Co masz na myśli?

W uproszczeniu zdarzenie kliku wywoływane jest przez fizyczne kliknięcie myszką na stronie lub programowalnie (np. przez wywołanie metody dispatchEvent na elemencie DOM). Jeśli nasłuchujesz tego zdarzenia w JavaScript (podpiąłeś jakąś funkcję), to może się zdarzyć, że wywołanie funkcji obsługującej zdarzenie przy zajętej kolejce zdarzeń opóźni się do momentu aż stos wywoławczy będzie pusty lub nie wykona się wcale, jeśli wątek się zawiesi.

Dlatego zaleca się, żeby wymagające operacje przeprowadzać w osobnych wątkach lub choćby rozbijać na mniejsze porcje kolejkując je.

P.S. Polecam obejrzeć: https://www.youtube.com/watch?v=8aGhZQkoFbQ

Podobne pytania

0 głosów
2 odpowiedzi 765 wizyt
pytanie zadane 25 sierpnia 2019 w JavaScript przez TomekN Początkujący (330 p.)
0 głosów
2 odpowiedzi 1,302 wizyt
pytanie zadane 3 września 2018 w JavaScript przez vneb Początkujący (490 p.)
0 głosów
2 odpowiedzi 166 wizyt
pytanie zadane 3 maja 2017 w JavaScript przez sapero Gaduła (4,100 p.)

92,674 zapytań

141,576 odpowiedzi

320,046 komentarzy

62,038 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

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!

...