🛠️wr212 - Creation d'une calculatrice avec du js
Dans cette séquence nous avons appris a utiliser des élément "data" dans les balises html qui se trouve très utiles pour récupérer des informations en JS.
Voici le HTML avec les attributs data-number dans les balises button.
```html
<div id="calc-grid">
<div id="span-four" data-output>0</div>
<button class="number" id="span-two" data-all-clear>AC</button>
<button class="number" data-operation>%</button><button class="number" data-operation>/</button><button class="number" data-number>7</button>
<button class="number" data-number>8</button><button class="number" data-number>9</button><button class="number" data-operation>*</button>
<button class="number" data-number>4</button><button class="number" data-number>5</button><button class="number" data-number>6</button>
<button class="number" data-operation>-</button><button class="number" data-number>1</button><button class="number" data-number>2</button>
<button class="number" data-number>3</button><button class="number" data-operation>+</button><button class="number" data-number>0</button>
<button class="number" data-number>.</button><button class="number" id="span-two" data-equals>=</button>
</div>
```et voilà pour la récupération et le traitement des données ensuite :
```javascript
const clearButton = document.querySelector('[data-all-clear]')
const output = document.querySelector('#span-four')
function clear() {
output.innerText=''
}
clearButton.addEventListener('click', ()=> {
//console.info('effacer')
clear() // au clique, j’appelle la fonction
})
const numberButtons = document.querySelectorAll('[data-number]')
function appendNumber(number) {
// console.info(number)
output.innerText = output.innerText + number.innerText // On modifie l'afficheur avec le nombre
}
numberButtons.forEach(button => { // Pour chaque bouton
button.addEventListener('click', () => { // On créer un detecteur
// console.info(button.innerText)
appendNumber(button)
})
})
const operationButtons = document.querySelectorAll('[data-operation]')
operationButtons.forEach(button => {
button.addEventListener('click', () => {
appendNumber(button)
})
})
const equals = document.querySelector('[data-equals]')
equals.addEventListener('click', () => {
output.innerText = eval(output.innerText);
})
```Last updated