My query: Can you tell me a event through which when I click any button its text should get copied in var buttonText, Ex when I click 8 on calculator, "8" should get copied in the variable buttonText.
I have tried var buttonText = buttons[i].innerText
. On the 6th line of my JavaScript code, but seems wrong and it's not working. Please help. I have also used query selector and for loop to get all buttons.
let screen = document.getElementById('screen'); // selects the screen
var buttons = document.querySelectorAll('button'); // selects all the buttons
let screenValue = ""; // inital value on the screen is empty
for (var i = 0; i < buttons.length; i++) {
buttons[i].addEventListener('click', function() {
var buttonText = buttons[i].innerText. // Gets the text of that button which is clicked
if(buttonText == 'X') { // since the cross X sign is * multiplication sign.
buttonText = '*';
screenValue += buttonText;
screen.value = screenValue;
}
else if (buttonText == 'C') { // for clearing the screen
screenValue = "";
screen.value = screenValue;
} else if (buttonText == '=') { // = for calculating the arithmetic operation.
screen.value = eval(screenValue);
} else {
screenValue += buttonText; // for appending inputs together
screen.value = screenValue;
}
});
}
<div class="container">
<h1>Calculator By Ayush</h1>
<div class="calculator">
<input type="text" name="screen" id="screen">
<table>
<tr>
<td><button>(</button></td>
<td><button>)</button></td>
<td><button>C</button></td>
<td><button>%</button></td>
</tr>
<tr>
<td><button>7</button></td>
<td><button>8</button></td>
<td><button>9</button></td>
<td><button>X</button></td>
</tr>
<tr>
<td><button>4</button></td>
<td><button>5</button></td>
<td><button>6</button></td>
<td><button>-</button></td>
</tr>
<tr>
<td><button>1</button></td>
<td><button>2</button></td>
<td><button>3</button></td>
<td><button>+</button></td>
</tr>
<tr>
<td><button>0</button></td>
<td><button>.</button></td>
<td><button>/</button></td>
<td><button>=</button></td>
</tr>
</table>
</div>
</div>