我正在構建一個計算器,並希望每個按鈕都將其值發送到名爲「storage」的空數組。首先,我不能讓我的代碼運行每個按鈕,我不知道這是爲什麼。它只在#1按鈕上運行。其次,我不確定如何去將值發送到數組「存儲」。我知道JS有一個.push();方法,但事情不適合我。將跨距值推送到數組
請不要JQuery,我想先在普通的JS中獲得一個良好的基礎。
// Click on button and have number saved in array for later use
var spanVal = document.getElementsByClassName("num");
var storage = [];
function clickButton() {
var key = document.querySelector(".num");
key.onclick = logVal;
}
function logVal() {
for (var i = 0; i < spanVal.length; i++) {
console.log(spanVal[i].innerHTML);
}
}
clickButton();
/*storage.push();
console.log(storage);*/
#calculator {
max-width: 250px;
}
.keys span {
width: 50px;
height: 50px;
border-radius: 5px;
float: left;
margin: 8px;
font: bold 20px Arial, sans-serif;
text-align: center;
}
.grey {
background-color: grey;
}
.blue {
background-color: aqua;
}
.screen {
width: 180px;
height: 40px;
border-radius: 3px;
background-color: #ccc;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<div id="calculator">
<div class="keys">
<div class="screen"></div>
<span class="num grey">1</span>
<span class="num blue">2</span>
<span class="num grey">3</span>
<span class="num blue">4</span>
<span class="num grey">5</span>
<span class="num blue">6</span>
<span class="num grey">7</span>
<span class="num blue">8</span>
<span class="num grey">9</span>
<span class="num blue">0</span>
<span class="num grey operator">+</span>
<span class="num blue operator">-</span>
<span class="num grey operator">/</span>
<span class="num blue operator">*</span>
<span class="num grey operator">AC</span>
</div>
</div>
</head>
<body>
</body>
</html>
還在學習如何使用SO。剛剛做到了! :) – CrystalH
'querySelector'只返回'clickButton'中第一個找到的元素,你需要'querySelectorAll',然後在附加onclicks時遍歷返回的集合。 – Teemu