javascript - 无法使用 getElementById 检索/显示按钮 ID

标签 javascript html button

我正在尝试使用 Javascript/HTML/CSS 制作一个计算器,目前正处于尝试使按下的按钮(使用 Bootstraps 的按钮类)出现在显示屏中的阶段。

部分 HTML:

<div class="row">
     <button class="keys" id="7">7</button>
     <button class="keys" id="8">8</button>
     <button class="keys" id="9">9</button>
     <button class="keys" id="/"><img src="images/division.png" height="50em" width="50em"></button>
     <button class="keys" id="reset">C</button>
</div>

在js文件中:

function calculate(evt){
   var keyValue = evt.target.id  // recording the key value into variable

   tempDisplay += keyValue;
   document.getElementById("display").innerHTML = tempDisplay;
}

前 3 行(7,8 和 9)很好,getElementById 可以抓取 id 并将它们显示在“显示”部分。

但是我无法让图像所在的行显示其 id,即显示屏上的“/”。

如果我输入某种文本,例如:

<button class="keys" id="/">text<img src="images/division.png"></button>

那么“/”就可以正常显示了。

感谢任何帮助

最佳答案

evt.target将是被单击的元素。

 <button class="keys" id="/"><img src="images/division.png" height="50em" width="50em"></button>

在这种情况下,该元素将是 <img> .

如果你想获取包含它的按钮的ID,那么你需要检查它的父级。

一般的解决方案是递归地检查 tagName parentNode的直到你找到一个按钮或用完 parent 。

关于javascript - 无法使用 getElementById 检索/显示按钮 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50811591/

相关文章:

html - 设置 html,正文最小高度为 : 100% but also allow it to expand

html - 如果选择标记具有可见性 :hidden,,它的值是否在表单提交时提交?

windows - 为什么有些控件没有窗口句柄?

javascript - 为什么返回的li标签不渲染? ESlint 期待返回值

javascript - 在其外部定义的对话框中的 Var 返回未定义的 jQuery

javascript - 使用 ECMAScript6 在 Google 表单中收集回复并进行统计

php - 当我们从mysql数据库获取数据时出现错误如何正确

ios - 滚动时如何向 UITableViewCell 添加更多按钮?

java - 如何测量 Java 中按钮所需的大小

javascript - 如何在 vuetify 中动态添加/删除带有选择/自动完成值的新表单行?