calculator - 计算器示例/JS 和 HTML 元素之间的链接
问题描述
我正在为计算器做一个练习示例,但我不明白以下部分:
这就是它的样子
const buttons = document.querySelectorAll(".btn");
const display = document.querySelector("#display");
for (let i = 0; i < buttons.length; i++) {
buttons[i].addEventListener("click", function () {
let number = buttons[i].getAttribute("data-num");
display.value += number;
});
}
<section>
<form>
<input type="text" id="display" />
</form>
<div class="btns">
<button type="button" class="btn" data-num="+">+</button>
<button type="button" class="btn" data-num="-">-</button>
<button type="button" class="btn" data-num="/">/</button>
<button type="button" class="btn" data-num="*">*</button>
<button type="button" class="btn" data-num="0">0</button>
<button type="button" class="btn" data-num="1">1</button>
<button type="button" class="btn" data-num="2">2</button>
<button type="button" class="btn" data-num="3">3</button>
<button type="button" class="btn" data-num="4">4</button>
<button type="button" class="btn" data-num="5">5</button>
<button type="button" class="btn" data-num="6">6</button>
<button type="button" class="btn" data-num="7">7</button>
<button type="button" class="btn" data-num="8">8</button>
<button type="button" class="btn" data-num="9">9</button>
<button type="button" class="e-btn" data-num="=">=</button>
<button type="button" class="c-btn" data-num="C">C</button>
</div>
</section>
我想我理解 for 循环和这一切背后的想法。我假设 const " buttons "JS
变成了array(?),
我想我明白了,但是由于没有或单独的 ,它是如何与单个按钮相关联的,它只是为(?) 创建的,在所有地方都是一样的。HTML
ID
class
array
JS
HTML
button
例如,如何将buttons
[5]eventlistener
链接到代表按钮“ 0 ”的按钮HTML
?
解决方案
有句老话是这样说的:“一路下来都是计算器。” 没有人知道它来自哪里,但它对物理世界的洞察力是惊人的。例如,在这里您正在计算一个计算器的元素,其可见元素是由 Web 浏览器计算的。该网络浏览器运行在通过操作系统内的计算编译的代码上,该代码是通过使用 CPU 的另一个计算编译的,CPU 本身就是一个计算器,代表 Calculator Please Use。所有这一切都是由人脑设计的,这是除了可以运行 Doom 的 TI-89 之外的最高形式的计算器。
无论如何,回到手头的问题,HTML 元素不需要id
orclass
彼此分开存在。这些只是定位它们的方法。即使没有id
,每个按钮仍然作为一个独立的东西存在于屏幕上。鉴于此,document.querySelectorAll(".btn")
返回一个名为 a 的类数组对象NodeList
,可以迭代。其中的每个元素NodeList
都可以通过其索引来标识(换句话说,在此示例中,列表中的索引buttons[i]
在哪里i
)。
id
当您希望能够自行定位元素时,An很有用。class
在这种情况下,当您希望能够识别一组相关元素 ( btn
)时, A很有用。document.querySelectorAll(".btn")
说“给我这个类的所有元素btn
。”
推荐阅读
- php - 我的 PHP 邮件程序代码给出了 HTTP 500 错误
- javascript - 尝试删除 api 密钥但得到“等待仅在异步函数中有效”
- javascript - 编译 swig 包装的 cxx 文件时 v8.h 中出现未定义的引用错误
- xamarin.ios - 在后台时从 Xamarin iOS 提交数据
- c# - 为什么while循环之后的语句被执行?
- c++ - 如何将派生类的指针传递给基类指针的引用?
- c# - 考虑类的多个属性的优雅排序算法
- python - 无法使用 Celery + Django + Gunicorn 运行后台任务
- nginx - Google Lighthouse 加载 webp 图像时出错
- javascript - 答案现在未定义,正在工作并突然停止