|
| 1 | +const num = "C ← . X 7 8 9 / 4 5 6 - 1 2 3 + 0 00 ="; |
| 2 | +const numList = num.split(" "); |
| 3 | + |
| 4 | +// const h1 = document.getElementById("title"); |
| 5 | +const h1 = document.createElement("h1"); |
| 6 | +const p = document.createElement("p"); |
| 7 | +const container = document.createElement("div"); |
| 8 | +const calculator = document.createElement("div"); |
| 9 | +const input_box = document.createElement("div"); |
| 10 | +const numBtn = document.createElement("div"); |
| 11 | +const input = document.createElement("input"); |
| 12 | + |
| 13 | +container.className = "container"; |
| 14 | +calculator.className = "calculator"; |
| 15 | +input_box.id = "inputBox"; |
| 16 | +numBtn.className = "nums"; |
| 17 | +input.id = "result"; |
| 18 | +h1.innerText = "Calculator" |
| 19 | +h1.id = "title"; |
| 20 | +h1.className = "text-center" |
| 21 | + |
| 22 | +//p tag |
| 23 | +p.innerText = "This is a calculator program that uses the DOM"; |
| 24 | +p.id = "description"; |
| 25 | +p.className = "text-center"; |
| 26 | + |
| 27 | +//body append |
| 28 | +document.body.append(h1, p, container); |
| 29 | +container.append(calculator); |
| 30 | +calculator.append(input_box, numBtn); |
| 31 | + |
| 32 | +const inputBox = document.getElementById("inputBox"); |
| 33 | +inputBox.append(input); |
| 34 | + |
| 35 | +//This function button created |
| 36 | +function buttons(valu) { |
| 37 | + let element = document.createElement("button"); |
| 38 | + element.setAttribute("value", valu); |
| 39 | + element.setAttribute("id", valu); |
| 40 | + element.innerText = valu; |
| 41 | + |
| 42 | + let btnList = element.innerText; |
| 43 | + if (btnList == "C" || btnList === "←") { |
| 44 | + switch (btnList === valu) { |
| 45 | + //input value all clear |
| 46 | + case valu === "C": |
| 47 | + element.style.color = "red"; |
| 48 | + element.id = "clear"; |
| 49 | + element.value = ""; |
| 50 | + element.addEventListener("click", () => { |
| 51 | + input.value = ""; |
| 52 | + }); |
| 53 | + break; |
| 54 | + case valu === "←": |
| 55 | + element.addEventListener('click', ()=>{ |
| 56 | + input.value = input.value.slice(0, -1) |
| 57 | + }) |
| 58 | + element.value = "" |
| 59 | + break |
| 60 | + } |
| 61 | + } |
| 62 | + if ( |
| 63 | + btnList === "X" || |
| 64 | + btnList === "/" || |
| 65 | + btnList === "-" || |
| 66 | + btnList === "+" || |
| 67 | + btnList === "." |
| 68 | + ) { |
| 69 | + element.style.color = "blue"; |
| 70 | + switch (btnList === valu) { |
| 71 | + case valu === "+": |
| 72 | + element.id = "add"; |
| 73 | + break; |
| 74 | + case valu === "-": |
| 75 | + element.id = "subtract"; |
| 76 | + break; |
| 77 | + case valu === "X": |
| 78 | + element.id = "multiplication"; |
| 79 | + element.value = "*"; |
| 80 | + break; |
| 81 | + case valu === "/": |
| 82 | + element.id = "division"; |
| 83 | + break; |
| 84 | + case valu === ".": |
| 85 | + element.id = "point"; |
| 86 | + } |
| 87 | + } |
| 88 | + //Calculate values for result |
| 89 | + if (btnList === "=") { |
| 90 | + element.id = "equal"; |
| 91 | + element.value = "" |
| 92 | + element.addEventListener("click",()=> { |
| 93 | + try{ |
| 94 | + input.value = eval(input.value); |
| 95 | + } |
| 96 | + catch(error){ |
| 97 | + alert("Invalid input") |
| 98 | + input.value = "" |
| 99 | + } |
| 100 | + }) |
| 101 | + } |
| 102 | +//iinserting the entered value |
| 103 | + element.addEventListener("click", () => { |
| 104 | + input.value += element.value; |
| 105 | + }); |
| 106 | + |
| 107 | + return element; |
| 108 | +} |
| 109 | + |
| 110 | +//button value pushing |
| 111 | +for (let i = 0; i < numList.length; i++) { |
| 112 | + let inp = buttons(numList[i]); |
| 113 | + numBtn.append(inp); |
| 114 | +} |
0 commit comments