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

Switch czemu nie działa ze zmienną?

Object Storage Arubacloud
0 głosów
227 wizyt
pytanie zadane 14 czerwca 2017 w JavaScript przez Venglas Obywatel (1,160 p.)
zmienione kategorie 14 czerwca 2017 przez Venglas

Witam mam oto taki problem i nie wiem jak go rozwiązać: 

    function wykonaj()
           {
               var uchwyt = document.getElementById("sprawdz");
               
               var liczba = document.getElementById("text1").value;
               
               
               switch(liczba)
                       {
                   case 1:
                       uchwyt.innerHTML="to jest liczba nr. 1";
                       break;
               }
               
               
           }

Oczywiście rozważamy opcje, że w pole została wprowadzona liczba '1'.

2 odpowiedzi

+2 głosów
odpowiedź 14 czerwca 2017 przez Wiciorny Ekspert (269,590 p.)

Zmień proszę kategorię. Nie wiem jak to jest z JS, o ile w C++ musisz podać typ zmiennej, to tutaj rozumiem w JS tego nie określamy, jednak  możliwe jest, że " pobrana wartość przez getElementById nie jest typu  dla którego pasuje "1'.

Ewentualnie dodać musisz jakąs akcje "default"

 

https://www.w3schools.com/jsref/jsref_switch.asp

z tego co tu wynika to pobrana wartość nie jest typu string, jako że "1" nie bedzie typu numerycznego ale bedzie liczba jako string zapisaną spróbuj 

 case "1" // ewentualnie case '1'

 

+2 głosów
odpowiedź 14 czerwca 2017 przez rafal1997 Gaduła (3,180 p.)

Jako CASE masz liczby a VALUE pobiera CI dane jako STRING, użyj funkcji parseInt aby zmienić typ danych:

liczba = parseInt(liczba);

 

2
komentarz 14 czerwca 2017 przez surfeliza Stary wyjadacz (11,260 p.)

Jako ciekawostkę dodam, że jeżeli ciąg składa się z samych liczb to podzielenie przez jeden zmieni typ na number.

liczba /= 1;

 

komentarz 14 czerwca 2017 przez rafal1997 Gaduła (3,180 p.)

@surfeliza o tym nie wiedziałem :)

1
komentarz 14 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)

albo jeszcze krócej:

+liczba

 

komentarz 14 czerwca 2017 przez surfeliza Stary wyjadacz (11,260 p.)
edycja 14 czerwca 2017 przez surfeliza

+liczba musisz przypisać do zmiennej liczba, w moim przykładzie nie musisz tego robić (znaczy się jest skrócona wersja, w twoim przypadku wypada więcej znaków) więc wychodzi krócej, chyba że jakiś sposób pominąłem. 

Można też oczywiście rzutować:

liczba = Number(liczba);
komentarz 14 czerwca 2017 przez Tomek Sochacki Ekspert (227,510 p.)

fakt, nie zwróciłem uwagi, że musi to być przypisane do zmiennej.

Z tą ilością znaków to aż tak bym nie panikował. Twoje rozwiązanie jest bardzo ciekawe, szczerze mówiąc pierwszy raz je widzę :)

Jak już idziemy w różne sztuczki/triki to można nieco zamotać i napisać:

liczba = "5";
liczba >>0; //5

z użyciem przesunięcia bitowego :) Ale to tak bardziej na marginesie, i chyba żeby zrobić nieco na złość innym programistom z zespołu :) no i oczywiście tylko jeśli obracamy się w liczbach całkowitych.

Podobne pytania

+1 głos
1 odpowiedź 276 wizyt
pytanie zadane 8 sierpnia 2022 w JavaScript przez grewwwew Użytkownik (830 p.)
0 głosów
2 odpowiedzi 486 wizyt
pytanie zadane 20 kwietnia 2020 w JavaScript przez michulo Obywatel (1,240 p.)
0 głosów
1 odpowiedź 207 wizyt
pytanie zadane 26 czerwca 2019 w JavaScript przez fff Gaduła (3,950 p.)

92,537 zapytań

141,377 odpowiedzi

319,456 komentarzy

61,922 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!

...