Javascript.RU

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

NaN при вычислениях
"Это" должен получиться калькулятор расчета количества кирпичей для постройки дома. Не считает последний параметр "vsegokirpichei". "result" (количество кирпичей в 1м2 кладки) получаем из таблицы и умножаем на площадь стен дома (ploshadsten - ploshadproemov). Приму любую помощь, как с последним параметром, так и в целом по коду.

<script>
onload = function ()
{
   function mySelect ()
   {
   if (!!s1.selectedIndex && !!s2.selectedIndex)
      {
      t.rows [s2.selectedIndex].cells [s1.selectedIndex].style.backgroundColor = 'lime';
      r.innerHTML = t.rows [s2.selectedIndex].cells [s1.selectedIndex].innerHTML;
      }
   }
 
var t = document.getElementById ('tbl');
var r = document.getElementById ('result');
var s1 = document.getElementById ('first');
var s2 = document.getElementById ('second');
 
for (var  j = 1; j < t.rows [0].cells.length; j++)
   {
   var op = document.createElement ('option');
   op.text = t.rows [0].cells [j].innerHTML;
   s1.options.add (op);
   }
 
for (var  j = 1; j < t.rows.length; j++)
   {
   var op = document.createElement ('option');
   op.text = t.rows [j].cells [0].innerHTML;
   s2.options.add (op);
   }
 
s1.onchange = mySelect;
s2.onchange = mySelect;
}
</script>
<body>
<table cellpadding="4" border id="tbl">
<tr><th>кирпич/кладка</th>
<th>Евро</th>
<th>Одинарный</th>
<th>Полуторный</th>
<th>Двойной</th>
</tr>
<tr><th>Пол кирпича</th>
<td>51</td>
<td>51</td>
<td>39</td>
<td>26</td>
</tr>
<tr><th>Кирпич</th>
<td>141</td>
<td>102</td>
<td>78</td>
<td>52</td>
</tr>
<tr><th>Полтора кирпича</th>
<td>192</td>
<td>153</td>
<td>117</td>
<td>78</td>
</tr>
<tr><th>Два кирпича</th>
<td>282</td>
<td>204</td>
<td>156</td>
<td>104</td>
</tr>
<tr><th>Два с половиной кирпича</th>
<td>332</td>
<td>255</td>
<td>195</td>
<td>130</td>
</tr>
</table>
<hr>
<p>
<select id="first">
<option>Размер кирпича</option>
<option>Евро</option>
<option>Одинарный</option>
<option>Полуторный</option>
<option>Двойной</option>
</select>
<select id="second">
<option>Вид кладки</option>
<option>Пол кирпича</option>
<option>Кирпич</option>
<option>Полтора кирпича</option>
<option>Два кирпича</option>
<option>Два с половиной кирпича</option>
</select>
<input type="text" id="dlinasten" value="" placeholder="укажите длину стен по периметру">
<input type="text" id="visotasten" value="" placeholder="укажите высоту стен">
<input type="text" id="shirinaokna" value="" placeholder="укажите ширину окна">
<input type="text" id="visotaokna" value="" placeholder="укажите высоту окна">
<input type="text" id="vsegookon" value="" placeholder="укажите количество окон">
<input type="text" id="shirinadveri" value="" placeholder="укажите ширину двери">
<input type="text" id="visotadveri" value="" placeholder="укажите высоту двери">
<input type="text" id="vsegodverei" value="" placeholder="укажите количество дверей">
</p>
<div id="result">&nbsp;</div>
<button onClick="raschitat();">Рассчитать</button>
<div id="ploschadsten"></div>
<div id="ploshadproemov"></div>
<div id="vsegokirpichei"></div>
<script type="text/javascript">
function raschitat() {
dlinasten  = document.getElementById('dlinasten').value;
visotasten  = document.getElementById('visotasten').value;
shirinaokna  = document.getElementById('shirinaokna').value;
visotaokna  = document.getElementById('visotaokna').value;
vsegookon  = document.getElementById('vsegookon').value;
shirinadveri  = document.getElementById('shirinadveri').value;
visotadveri  = document.getElementById('visotadveri').value;
vsegodverei  = document.getElementById('vsegodverei').value;
result  = document.getElementById('result').value;
{
ploschadsten = parseFloat (dlinasten)* parseFloat (visotasten);
document.getElementById('ploschadsten').innerHTML = "Площадь стен равна: "+ ploschadsten +" м2";
ploshadproemov = parseFloat (shirinaokna)* parseFloat (visotaokna)* parseFloat (vsegookon)+ parseFloat (shirinadveri)* parseFloat (visotadveri)* parseFloat (vsegodverei) ;
document.getElementById('ploshadproemov').innerHTML = "Площадь проемов равна: "+ ploshadproemov +" м2"
vsegokirpichei = Math.ceil((ploschadsten - ploshadproemov) * parseFloat (result));
document.getElementById('vsegokirpichei').innerHTML = "Итого потребуется: "+ vsegokirpichei +" шт.";
}
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 11.01.2018, 12:59
Лаборант :-)
Отправить личное сообщение для Pavel M. Посмотреть профиль Найти все сообщения от Pavel M.
 
Регистрация: 08.11.2011
Сообщений: 806

result = document.getElementById('result').value;

не работает для div

используйте для получения текста например
document.getElementById('result').textContent
Ответить с цитированием
  #3 (permalink)  
Старый 11.01.2018, 13:32
Новичок на форуме
Отправить личное сообщение для szbmsk Посмотреть профиль Найти все сообщения от szbmsk
 
Регистрация: 11.01.2018
Сообщений: 2

Спасибо большое!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смена класса у отдельного div при нажатии на ссылку Maxim-Ra Элементы интерфейса 6 15.02.2015 12:20
при сложении чисел NaN Walker121212 Элементы интерфейса 5 19.11.2014 21:30
Изменение прозрачности при клике AJIUK jQuery 8 09.03.2014 16:00
при нажатии на раздел меню поворачивается маркер Сергей545 Элементы интерфейса 5 08.12.2013 22:15
проблема с событиями при работе с Ext.extend slavik27 ExtJS 1 04.09.2011 13:05