Advertisement
Guest User

Untitled

a guest
Feb 9th, 2016
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. window.onload = createButtonAndSum;
  2.  
  3.  
  4. function createButtonAndSum(){
  5.  
  6.     var btn = document.createElement("BUTTON");
  7.     var t = document.createTextNode("Beräkna summa");
  8.     btn.appendChild(t);
  9.     document.getElementById("content").appendChild(btn);
  10.     createSumCells();
  11.     createSumRow();
  12.  
  13.     btn.onclick = calculateSum;
  14.    
  15.  
  16. }
  17.  
  18. function createSumRow(){
  19.     var pricetbl = document.getElementById("pricetable");
  20.     var sumRow = pricetbl.insertRow(-1);
  21.     sumRow.setAttribute('id','sumrow');
  22.     for (var i = 0; i < 6; i++) {
  23.         sumRow.insertCell(i);
  24.     }
  25.  
  26. }
  27.  
  28. function createSumCells() {
  29.  
  30.     var th = document.createElement("th");
  31.     th.appendChild(document.createTextNode("Summa"));
  32.     th.setAttribute('id', 'summa');
  33.  
  34.  
  35.     var pricetbl = document.getElementById("pricetable");
  36.     var rows = pricetbl.getElementsByTagName("tr");
  37.     pricetbl.tHead.rows[0].appendChild(th)
  38.     for (var i = 1; i < rows.length; i++) {
  39.         var tableCells = rows[i].getElementsByTagName("td");
  40.         tableCells = rows[i].insertCell(-1).setAttribute('id', 'sumcells');
  41.  
  42.     }
  43. }
  44.  
  45. //Funktionen som skapar tabell-tillägget och fyller dem med värden.
  46.  
  47.  
  48.  
  49. function calculateSum() {
  50.  
  51.     var pricetbl = document.getElementById("pricetable");
  52.     var rows = pricetbl.getElementsByTagName("tr");
  53.     var totalSum = 0;
  54.     var totalNumber = 0;
  55.  
  56.     //Kontrollerar ifall sumrow är null eller ej.
  57.     //Om sumrow inte är null, så tar den bort raden, samt tabellhuvud "summa".
  58.     //Detta för att kunna ladda in nya data.
  59.     //Detta går GARANTERAT att lösa på ett snyggare sätt... ... ...
  60.  
  61.     var sumRow = document.getElementById("sumrow");
  62.     if (sumRow != null){
  63.  
  64.         pricetbl.rows[0].deleteCell(-1);
  65.         pricetbl.deleteRow(-1);
  66.  
  67.  
  68.     }
  69.  
  70.         for (var i = 1; i < rows.length ; i++) {
  71.  
  72.             var tableCells = rows[i].getElementsByTagName("td");
  73.  
  74.             var price = prices(tableCells);
  75.             var amount = amounts(tableCells);
  76.  
  77.                 tableCells = rows[i].cells[5].innerHTML = (price * amount);
  78.  
  79.             var totalNumber = totalNumber + parseInt(amount);
  80.             var totalSum = totalSum + parseInt(price * amount);
  81.  
  82.  
  83.  
  84.         }
  85.  
  86.  
  87.     //}
  88.  
  89.  
  90.     //Skapar summa-raden med de attributen som definieras i CSS-filen för 'sumrow'
  91.  
  92.     var sumRow = pricetbl.insertRow(-1);
  93.     sumRow.setAttribute('id','sumrow');
  94.     for (var i = 0; i < 6; i++) {
  95.         sumRow.insertCell(i);
  96.     }
  97.  
  98.     //skapar tabellhuvudet Summa.
  99.  
  100.     var th = document.createElement("th");
  101.     th.appendChild(document.createTextNode("Summa"));
  102.     th.setAttribute('id', 'summa');
  103.     pricetbl.tHead.rows[0].appendChild(th);
  104.  
  105.     //Lägger in totala antalet och totala summan i summaraden sumRow.
  106.  
  107.     sumRow.cells[4].innerHTML = totalNumber;
  108.     sumRow.cells[5].innerHTML = totalSum;
  109.  
  110.  
  111. }
  112.     //hämtar antalet artiklar
  113.  
  114.     function amounts (cells)
  115.  
  116.     {
  117.  
  118.         for (var i = 1; i < cells.length -1; i++)
  119.         {
  120.  
  121.             var amount = cells[4].getElementsByTagName("input")[0].value;
  122.  
  123.         }
  124.         numberOfItems = amount;
  125.         return numberOfItems;
  126.  
  127.  
  128.     }
  129.  
  130.     function prices (cells)
  131.     {
  132.  
  133.  
  134.     for (var i = 1; i < cells.length - 1; i++) {
  135.  
  136.         var price = cells[3].firstChild.nodeValue;
  137.  
  138.     }
  139.  
  140.         itemSum = price;
  141.     return itemSum;
  142.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement