| 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: 7 let
|
|||
0