2017-02-18 26 views
0

Я пытаюсь создать текущую сумму в Javascript, пропуская цены в функцию.Передача параметров в функцию, чтобы сохранить общее количество

Когда пользователь нажимает кнопку, цена передается в функцию addBalance. Я не уверен, как добавить и отобразить текущее количество.

Я супер застреваю. Пожалуйста помоги.

// JavaScript Document 
document.getElementById("computing").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("Computing"); 
}, false); 
document.getElementById("english").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("English"); 
}, false); 
document.getElementById("maths").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("Maths"); 
}, false); 
document.getElementById("geography").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("Geography"); 
}, false); 
document.getElementById("history").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("History"); 
}, false); 
document.getElementById("science").addEventListener('click', function() { 
    "use strict"; 
    bookOrder("Science"); 
}, false); 
document.getElementById("showArray").addEventListener('click', showArrayValues); 
var books = []; //array 
//user defined function & passing parameters 
function bookOrder(book) { 
    "use strict"; 
    //conditional statement 
    switch (book) { 
     case "Computing": 
      books.push("<p>Computing - £6.99</p>"); 
      addBalance(6.99); 
      alert("Computing - £6.99, has been added to your order"); 
      break; 
     case "English": 
      books.push("<p>English - £7.99</p>"); 
      addBalance(7.99); 
      alert("English - £7.99, has been added to your order"); 
      break; 
     case "Maths": 
      books.push("<p>Maths - £8.99</p>"); 
      addBalance(8.99); 
      alert("Maths - £8.99, has been added to your order"); 
      break; 
     case "Geography": 
      books.push("<p>Geography - £9.99</p>"); 
      addBalance(9.99); 
      alert("Geography - £9.99, has been added to your order"); 
      break; 
     case "History": 
      books.push("<p>History - £10.99</p>"); 
      addBalance(10.99); 
      alert("History - £10.99, has been added to your order"); 
      break; 
     case "Science": 
      books.push("<p>Science - £11.99</p>"); 
      addBalance(11.99); 
      alert("Science - £11.99, has been added to your order"); 
      break; 
    } 
} 

function showArrayValues() { 
    "use strict"; 
    document.getElementById("output").innerHTML = ""; 
    for (var i in books) //loop 
    { //manipulating the DOM 
     document.getElementById("output").innerHTML += books[i]; 
    } 
} 

function addBalance(param1) { 
    "use strict"; 
    parseFloat(document.getElementById("total").innerHTML += param1); 
} 
+0

вы можете просто передать объект в массив книг под каждый случай элемента, включая текущий элемент и его цену. Затем вы можете отображать общее количество в любое время путем перемещения массива книг. – NDFA

ответ

0

добавить в верхней части:

var total=0; 

и:

function addBalance (param1){ 
    "use strict"; 
    total+=param1; 
    document.getElementById("total").innerHTML=total; 
} 
+0

Работает! Спасибо! – Dane

+0

отметьте как ответ тогда. благодаря –

0

Вы можете рассчитать общее легко с массивом уменьшить. например

var calc = total.reduce(function(sum, val) { 
    return sum + val; 
}, 0); 

См fiddle здесь