Динамический вывод суммы
<html>
<head>
<link rel="stylesheet" href="style.css"/>
<meta charset="utf-8">
<style>
#kalc{
font: 18px sans-serif;
color: #fff;
width: 960px;
border-spacing: 0 2px;
}
#kalc tr td{
padding: 5px;
background: #1C93B5;
}
#kalc tr td:nth-child(1){
width: 50%;
}
#kalc tr td:nth-child(2){
text-align: center;
width: 20%;
}
#kalc tr td:nth-child(3){
text-align: center;
width: 10%;
}
#kalc tr td:nth-child(4){
width: 20%;
text-align: center;
}
#kalc input{
width: calc(100% - 80px);
text-align: center;
}
</style>
</head>
<table id="kalc">
<tr>
<td>Наименование работ</td>
<td>Кол-во</td>
<td>Цена</td>
<td>Стоимость</td>
</tr>
<tr class="goods" price="229">
<td>Демонтаж кирпич, перегородок толщ. 1/2 кирпича</td>
<td><input placeholder="0"/> кв.м.</td>
<td>229</td>
<td><span class="out">0</span></td>
</tr>
<tr class="goods" price="459">
<td>Демонтаж кирпич, стен толщиной в 1 кирпич</td>
<td><input placeholder="0"/> кв.м.</td>
<td>459</td>
<td><span class="out">0</span></td>
</tr>
<tr>
<td></td>
<td></td>
<td><button id="b">ПОСЧИТАТЬ</button></td>
<td><div id="out">0</div></td>
</tr>
</table>
<br />
<script>
goods=[].map.call(document.querySelectorAll(".goods"), function(x){return x})
prices=goods.map(function(x){return +x.getAttribute("price")})
count=function(arr1, arr2){
var arr=[]
for(var i=0; i<arr1.length; i++) arr.push(arr1[i]*arr2[i])
return arr.reduce(function(x, y){return x + y})
}
inputs=goods.map(function(x){return x.querySelector("input")})
outs=goods.map(function(x){return x.querySelector(".out")})
inputs.forEach(function(x, i){x.onkeyup=function(){outs[i].innerHTML=+this.value*prices[i]}})
b.onclick=function(){
var numbers=inputs.map(function(x){return +x.value})
out.innerHTML=count(numbers, prices)
}
</script>
</html>
Как сделать чтоб итог выводился не по клику на кнопу а также динамически как у верхних наименований?
Последний раз редактировалось blogivan, 15.07.2015 в 18:36.
|