Показать сообщение отдельно
  #1 (permalink)  
Старый 24.11.2014, 02:25
Новичок на форуме
Отправить личное сообщение для raposo Посмотреть профиль Найти все сообщения от raposo
 
Регистрация: 24.11.2014
Сообщений: 5

Калькулятор глюкает и не работает в IE
Здрасте!

Попытался написать калькулятор мощности, но, похоже, вышло кривовато. Все браузеры ругаются на "item.getElementsByTagName("input")", а IE ещё и не работает. Подскажите где косяки и как править?

Находится тут: http://e-h.com.ua/kalc.htm

<div id="cac">
<table>
<thead>
<tr><td>Устройство</td><td>Мощность</td><td>Пусковая мощность</td><td>Количество</td></tr>
</thead>
<tbody>
<tr><td colspan="4">Освещение (эквивалент 10 лам накаливания 100W</td></tr>
<tr id="item1"><td>На лампах накаливания</td><td><input type="text" value="1000" /></td><td><input type="text" /></td><td><input type="text"/></td></tr>
<tr id="item2"><td>На энергосберегающих лампах</td><td><input type="text" value="200" /></td><td><input type="text" /></td><td><input type="text"/></td></tr>
<tr id="item3"><td>На светодиодных лампах</td><td><input type="text" value="100" /></td><td><input type="text" /></td><td><input type="text"/></td></tr>
<tr><td colspan="4">Системы жизнеобеспечения дома</td></tr>
<tr id="item4"><td>Дополнительный циркуляционный насос</td><td><input type="text" value="60" /></td><td><input type="text" value="120" /></td><td><input type="text"/></td></tr>
<tr id="item5"><td>Двухконтурный газовый котел (турбо)</td><td><input type="text" value="120" /></td><td><input type="text" value="200" /></td><td><input type="text"/></td></tr>
<tr id="item6"><td>Насос скважины</td><td><input type="text" value="1200" /></td><td><input type="text" value="3000" /></td><td><input type="text"/></td></tr>
<button id="but">Посчитать</button>
Результат:<input type="text" id="res" />
Реактивная:<input type="text" id="rea" />
</div>

var kalc = document.getElementById("cac"); //Определяем div в котором всё происходит
var but = document.getElementById("but"); // Определяем кнопку
var res = document.getElementById("res"); // Определяем поле для вывода результат

var doit = function(){     
    var sum = 0; //Начально значение суммы
    var maxpuskpow = 0; //Начально значение максимальной пусковой мощности
    var pow = 0; //Начально значение максимальной мощности
    
    var i = 1;
    while (i) { 
        var item = document.getElementById("item"+i); //перебираем циклом строки
        var input = item.getElementsByTagName("input"); //находим инпуты
        var pow = input[0].value; //определяем значение мощности 
        var qtt = input[2].value; //определяем количество приборов
        var sum = (pow*qtt)+sum; // Вычисляем сумму и прибавляем к ней сумму предыдущих вычеслений
        
        var puskpow = input[1].value; //определяем значение максимальной мощности 
        if(puskpow > maxpuskpow && qtt !=0){ //проверка на то указано ли количество и что мощность максимальная из отмеченных 
            var maxpuskpow = puskpow - pow;   // вычитаем из максимальной мощности номинальную
        }
        i++;
    res.value = parseInt(sum) + parseInt(maxpuskpow); // вычисляем суммарную мощность - сумма номинальных мощностей + максимальная пусковая
    }
}
but.addEventListener('click', doit); //выводим результат по клику


Ещё пытался перебирать строки таблицы через создание массива getElementsByTagName что-бы не писать каждой id, но что-то с этим совсем запутался...
Ответить с цитированием