Autor | Zpráva | ||
---|---|---|---|
RRR Profil |
#1 · Zasláno: 22. 1. 2019, 21:37:49
ahoj, tento kód mi v některých případech vyhazuje nepochopitelně dlouhá desetinná místa, mně by stačily bohatě jenom dvě a vím o funkci Math.round, ale nevím kam a jak ji napasovat do kódu aby fungovala tak, jak má.
<script>(function() { var selectElement1 = document.getElementsByName("8003-1")[0]; var selectElement2 = document.getElementsByName("8003-2")[0]; var selectElement3 = document.getElementsByName("8003-7")[0]; var selectElement4 = document.getElementsByName("8003-3")[0]; var selectElement5 = document.getElementsByName("8003-4")[0]; var selectElement6 = document.getElementsByName("8003-5")[0]; var selectElement7 = document.getElementsByName("8003-6")[0]; var selectElement8 = document.getElementsByName("8697400038003")[0]; var resultElement = document.getElementById("result") ; function recalculate() { resultElement.innerText = (selectElement1.value * 289.2 * 4) + (selectElement2.value * 289.2 * 4) + (selectElement3.value * 289.2 * 4) + (selectElement4.value * 289.2 * 4) + (selectElement5.value * 289.2 * 4) + (selectElement6.value * 289.2 * 4) + (selectElement7.value * 289.2 * 4) + (selectElement8.value * 289.2 * 4) ; } selectElement1.addEventListener('change', recalculate); selectElement2.addEventListener('change', recalculate); selectElement3.addEventListener('change', recalculate); selectElement4.addEventListener('change', recalculate); selectElement5.addEventListener('change', recalculate); selectElement6.addEventListener('change', recalculate); selectElement7.addEventListener('change', recalculate); selectElement8.addEventListener('change', recalculate); recalculate(); })(); </script> |
||
Tomášeek Profil |
#2 · Zasláno: 22. 1. 2019, 21:41:09
RRR:
Ten kód je hodně brutální, k tomu se vyjadřovat nebudu. Round patří kolem toho součtu. Logicky přeci ani jinam nejde, ne? Vím, ze jsi začátečník, ale tohle je nějaké základní logické uvažování. resultElement.innerText = Math.round(...); |
||
Keeehi Profil |
No, takže dnes se naučíme práci s poli.
(function() { var selectElementsNames = ["8003-1", "8003-2", "8003-7", "8003-3", "8003-4", "8003-5", "8003-6", "8697400038003"]; var selectElements = []; var resultElement = document.getElementById("result") ; for(var i = 0; i < selectElementsNames.length; i++) { selectElements.push(document.getElementsByName(selectElementsNames[i])[0]; } function recalculate() { var total = 0; for(var i = 0; i < selectElements.length; i++) { total += selectElements[i].value * 289.2 * 4; } resultElement.innerText = Math.round(total); } for(var i = 0; i < selectElements.length; i++) { selectElements[i].addEventListener('change', recalculate); } recalculate(); })(); Vůbec by neškodilo, kdyby sis prošel sekci JavaScript. Je pravda že web JPW vznikl před mnoha lety ovšem základy JS jsou platné stále. |
||
weroro Profil |
#4 · Zasláno: 23. 1. 2019, 09:05:29
Keeehi:
To bol zámer alebo iba prehliadnutie, že nikde nepoužívaš selectElementsNames a nikde nenapĺňaš selectElements ?
|
||
Keeehi Profil |
#5 · Zasláno: 23. 1. 2019, 09:20:31
weroro:
To se mi asi povedlo omylem smazat, když jsem nakonec formátoval příspěvek. Díky za upozornění, zpětně jsem to tam dodal. |
||
RRR Profil |
#6 · Zasláno: 23. 1. 2019, 18:04:58
díky za odpovědi, nakonec jsem se s tím popral sám
|
||
Časová prodleva: 2 měsíce
|
|||
inocencz Profil |
Keeehi, RRR:
ahoj .. jak psal Keeehi. Podivej se na arrays a jejich funkce. Potom se podivej na cykly jako for, while, forEach atd. Hodne ti to pomuze. kdyz se chces zbavit desetinnych cisel pouzij Math.floor( a sem napis to desetinne cislo ) ... napr.: Math.floor(6.18654) nebo Math.floor( 9 / 3 ) atd. Pokud ale chces jen zaokrouhlit treba na dve destinna mista pouzij funkci .toFixed() napr.: 3.333333333.toFixed(2) bude: 3.33 4.156987.toFixed(3) 4.157 let a = 44.868787 a.toFixed(1) 44.9 |
||
Časová prodleva: 5 let
|
0