Возможно ли это вообще?
Есть такая несложная, но "ооочень" большая функция:
function schet() { var n1=document.getElementsByName("n1")[0].value; var c1=document.getElementsByName("c1")[0].value; var z1=document.getElementsByName("z1")[0].value; ... var n200=document.getElementsByName("n200")[0].value; var c200=document.getElementsByName("c200")[0].value; var z200=document.getElementsByName("z200")[0].value; if (!z1&&z1>0) {n1=document.getElementsByName("n1")[0].value=""; c1=z1="";} ... if (!z200&&z200>0) {n200=document.getElementsByName("n200")[0].value=""; c200=z200="";} var rez=c1*z1+c2*z2+...c200*z200; document.getElementById("rezult").innerHTML='<h1>R EZULTAT: '+rez'+</h1>'; } </script> Вот у меня вопрос: возможно ли это сделать как-то короче? Не таким "индийским" кодом как у меня. Как должен выглядеть цикл для этой функции? Смущают document.getElementsByName. |
notsoft,
Можно. function schet() { var res = 0; for (var i = 1; i <= 200; i++) { var n = document.getElementsByName("n" + i)[0].value; var c = document.getElementsByName("c" + i)[0].value; var z = document.getElementsByName("z" + i)[0].value; if (!z && z > 0) { n = document.getElementsByName("n" + i)[0].value = ""; c = z = ""; } res += c * z; } document.getElementById("rezult").innerHTML='<h1>R EZULTAT: '+res +'</h1>'; } |
Ура! Но, блин, почему когда кто-то сделал, кажется что все так просто! А я как баран смотрел на свой код и понять не мог. Спасибо! +в карму!
|
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 13:54. |