【发布时间】:2021-01-04 18:53:56
【问题描述】:
我需要用 vanilla JS 构建一个计算器。
但是当我尝试获取 div 元素的值时遇到了问题。谁能帮帮我?
<div id="num_keyboard">
<div class="btn-opt" value="1">1</div>
<div class="btn-opt" value="2">2</div>
<div class="btn-opt" value="3">3</div>
<div class="btn-opt" value="4">4</div>
<div class="btn-opt" value="5">5</div>
<div class="btn-opt" value="6">6</div>
<div class="btn-opt" value="7">7</div>
<div class="btn-opt" value="8">8</div>
<div class="btn-opt" value="9">9</div>
<div class="btn-opt" value="0">0</div>
</div>
<script>
const num_keyboard = document.querySelectorAll(".btn-opt");
let numArray = Array.from(num_keyboard);
console.log(numArray);
for(let c = 0; c <= numArray.length; c++) {
numArray[c].addEventListener("click", () => {
alert(`Foi: ${numArray[c].value}`);
})
};
</script>
【问题讨论】:
-
<div>元素没有值。 -
将
numArray[c].value更改为numArray[c].getAttribute("data-value")并在 div 中在 value 之前添加data-,因为 div 不获取值。 -
正如 imvain2 提到的,使用数据属性。另外,在事件回调中使用事件目标: numArray[c].addEventListener("click", (event) => { alert(
Foi: ${event.target.getAttribute("data-value")}); }) -
使用按钮....
标签: javascript html calculator