Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.03.2013, 21:16
Новичок на форуме
Отправить личное сообщение для notsoft Посмотреть профиль Найти все сообщения от notsoft
 
Регистрация: 12.03.2013
Сообщений: 3

Возможно ли это вообще?
Есть такая несложная, но "ооочень" большая функция:
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.
Ответить с цитированием
  #2 (permalink)  
Старый 12.03.2013, 21:25
Профессор
Отправить личное сообщение для Hoshinokoe Посмотреть профиль Найти все сообщения от Hoshinokoe
 
Регистрация: 08.01.2012
Сообщений: 253

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>';
}
Ответить с цитированием
  #3 (permalink)  
Старый 12.03.2013, 22:43
Новичок на форуме
Отправить личное сообщение для notsoft Посмотреть профиль Найти все сообщения от notsoft
 
Регистрация: 12.03.2013
Сообщений: 3

Ура! Но, блин, почему когда кто-то сделал, кажется что все так просто! А я как баран смотрел на свой код и понять не мог. Спасибо! +в карму!
Ответить с цитированием
  #4 (permalink)  
Старый 13.03.2013, 06:06
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Hoshinokoe
!z && z > 0
Разве это условие может быть истинным когда-либо?
Ответить с цитированием
  #5 (permalink)  
Старый 15.03.2013, 11:08
Новичок на форуме
Отправить личное сообщение для notsoft Посмотреть профиль Найти все сообщения от notsoft
 
Регистрация: 12.03.2013
Сообщений: 3

Сообщение от danik.js Посмотреть сообщение
Разве это условие может быть истинным когда-либо?
Нет, это я перемудрил. Можно просто z>0.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поюзайте хомячка Nanto Ваши сайты и скрипты 30 06.06.2011 22:16
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Общие вопросы Javascript 1 13.04.2011 22:09
Объект не поддерживает это свойство или метод load_081112_0953.js 1auto1 Internet Explorer 1 13.04.2011 21:59
Что означает конструкция ? ivanmara Общие вопросы Javascript 55 07.01.2009 02:54
возможно: массив + выборка mvorobjov Общие вопросы Javascript 5 13.08.2008 17:54