Показать сообщение отдельно
  #4 (permalink)  
Старый 15.07.2015, 21:15
Интересующийся
Отправить личное сообщение для salexseen Посмотреть профиль Найти все сообщения от salexseen
 
Регистрация: 24.03.2014
Сообщений: 11

Можно так.
var goods = [].map.call(document.querySelectorAll(".goods"), function(x){return x})
    var prices = goods.map(function(x){
        var td = x.children[2];
        var price = x.getAttribute('price');
        var text = document.createTextNode(price);

        td.appendChild(text);

        return +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, arr){
    x.onkeyup=function(){
        outs[i].innerHTML=+this.value*prices[i]

        var numbers = arr.map(function(x){return +x.value});
        out.innerHTML=count(numbers, prices);
    };
})

b.onclick=function(){
    var numbers=inputs.map(function(x){return +x.value})
    out.innerHTML=count(numbers, prices)
}
Ответить с цитированием