Zadejte hledaný výraz...

Problém s počítáním hodnot.

Ahoj,
zasekl jsem se opět na problému. Potřeboval bych spočítat hodnotu ve dvou divech a vypsat ji na místě. K tomu používám následný kód, ale problém je v tom, že mi to bere i hodnotu Kč, kterou samozřejmě nechci brát v potaz.
150 Kč
150 Kč
Nějaké nápady, návrhy, či postrčení?
Díky moc.
7. 9. 2018 13:47:26
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364555
michal731
verified
rating uzivatele
(69 hodnocení)
7. 9. 2018 13:52:05
7. 9. 2018 13:52:05
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364554
Napsal michal731;1483874
To bych rád udělal, ale nemohu :-(
7. 9. 2018 14:10:12
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364553
michal731
verified
rating uzivatele
(69 hodnocení)
7. 9. 2018 14:12:14
Tak hodnoty upravit třeba str.replace(" Kč", ""); :)
7. 9. 2018 14:12:14
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364552
Alex_H
verified
rating uzivatele
7. 9. 2018 14:13:02
Na prasáka v jednom řádku:
7. 9. 2018 14:13:02
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364551
Alex_H: Tohle není rozumně řešení protože nevíme zda nemá ceny jako 10 150 Kč, čiže odděleny po tisicích
7. 9. 2018 14:26:53
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364550
Napsal Alex_H;1483881
Na prasáka v jednom řádku:
To mi vyhodí hodnotu NaN Kč
7. 9. 2018 14:26:57
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364549
michal731
verified
rating uzivatele
(69 hodnocení)
7. 9. 2018 14:40:40
Tohle ti dostane jen ty čísla ... ten výběr si uprav dle svého
7. 9. 2018 14:40:40
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364548
Místo:
.html() použijte .text()
Pak:
Math.ceil(a - b)
nahraďte:
Math.ceil(parseInt(a) - parseInt(b))
Není to nejhezčí řešení, ale mělo by fungovat.
7. 9. 2018 14:42:08
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364547
Replace pomohl, díky moc :-)
---------- Příspěvek doplněn 07.09.2018 v 16:00 ----------
Lze ještě nějak ošetřit to, když mám více řádků? Mají stejné class a já to potřebuji počítat pro každý řádek zvlášť.
Díky moc
7. 9. 2018 14:43:12
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364546
Shopines
verified
rating uzivatele
(32 hodnocení)
8. 9. 2018 10:44:10
8. 9. 2018 10:44:10
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364545
Michal Jeřábek
verified
rating uzivatele
8. 9. 2018 12:37:32
Pokud nelze garantovat přesně tento způsob zápisu hodnot, pak nejsou výše uvedené metody úplně bezpečné.
8. 9. 2018 12:37:32
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364544
Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
8. 9. 2018 13:26:00
Napsal mjerabek;1483992
Pokud nelze garantovat přesně tento způsob zápisu hodnot, pak nejsou výše uvedené metody úplně bezpečné.
Tak ono to slouží asi pouze jako informační hodnota, takže bych to nebral tak vážně. Navíc se to pak dá rozšířit o podmínky.
Nicméně k vláknu. Pokud byste to chtěli fakt jako extra super mega ochráněný, tak mě napadá tenhle postup:
1) víme, že cena složena z čísel
2) tudíž získám string přes jQuery funkci ".text()"
3) získám pouze číslo 0-9 (ideálně přes regex?)
3b) ze získaného stringu do nové proměnné naopak uložím pouze a-Z (chceme získat měnu)
4) a následně sečtu a někam zapíšu
A teď můj teoretický kód (možná někdo lepší odladí): http://jsfiddle.net/qvf8awkj/1/
Změnil jsem pár čísel, aby bylo vidět, jak to funguje. Není to 100%, vím jaký to má chyby, ale jako základ by to mělo snad stačit.
PS: Změnil jsem název posledního řádku, protože se ti tam opakuje 2x stejná střída. Tak si to změn podle sebe.
Kód mimo JSfiddle zde:
8. 9. 2018 13:26:00
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364543
Shopines
verified
rating uzivatele
(32 hodnocení)
8. 9. 2018 13:27:48
Napsal mjerabek;1483992
Pokud nelze garantovat přesně tento způsob zápisu hodnot, pak nejsou výše uvedené metody úplně bezpečné.
Duvod? parseInt() vytahne ze stringu pouze cisla, takze to replace je tam uplne zbytecne
---------- Příspěvek doplněn 08.09.2018 v 13:33 ----------
Napsal Doctore97;1483996
Tak ono to slouží asi pouze jako informační hodnota, takže bych to nebral tak vážně. Navíc se to pak dá rozšířit o podmínky.
Nicméně k vláknu. Pokud byste to chtěli fakt jako extra super mega ochráněný, tak mě napadá tenhle postup:
1) víme, že cena složena z čísel
2) tudíž získám string přes jQuery funkci ".text()"
3) získám pouze číslo 0-9 (ideálně přes regex?)
3b) ze získaného stringu do nové proměnné naopak uložím pouze a-Z (chceme získat měnu)
4) a následně sečtu a někam zapíšu
A teď můj teoretický kód (možná někdo lepší odladí): http://jsfiddle.net/qvf8awkj/1/
Změnil jsem pár čísel, aby bylo vidět, jak to funguje. Není to 100%, vím jaký to má chyby, ale jako základ by to mělo snad stačit.
PS: Změnil jsem název posledního řádku, protože se ti tam opakuje 2x stejná střída. Tak si to změn podle sebe.
Kód mimo JSfiddle zde:
1. nemuze menit tridy
2. proc tak slozite?
8. 9. 2018 13:27:48
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364542
Pavel Mareš
verified
rating uzivatele
(19 hodnocení)
8. 9. 2018 13:35:58
Napsal Shopines;1483997
Duvod? parseInt() vytahne ze stringu pouze cisla, takze to replace je tam uplne zbytecne
---------- Příspěvek doplněn 08.09.2018 v 13:33 ----------
1. nemuze menit tridy
2. proc tak slozite?
Jak říkám, ukázka a klidně to můžeš doladit. Jak píšu. Nejsem vyloženě programátor a neznám JS 100%. Takže tohle je moje vize jak to udělat během pár minut.
8. 9. 2018 13:35:58
https://webtrh.cz/diskuse/problem-s-pocitanim-hodnot/#reply1364541
Pro odpověď se přihlašte.
Přihlásit