1

我正在尝试使用 JS 创建一个计算器 webapp,但遇到了一些问题。我查看了其他打开的线程并尝试了该代码,但它似乎不起作用。我目前只是试图记录被按下的按钮的 ID,但是当我按下一个按钮时,我得到的一切都"undefined"回来了。这是我的代码:

<html>
<head>
<title>Calculator</title>
</head>

<body>

<p id="text">
<table border="0" id="table">
  <tr>
  <td><input type="button" id="one" value="1" onClick="calculate();"></td>
  <td><input type="button" id="two" value="2" onClick="calculate();"></td>
  <td><input type="button" id="three" value="3" onClick="calculate();"></td>
  </tr>

  <tr>
  <td><input type="button" id="four" value="4" onClick="calculate();"></td>
  <td><input type="button" id="five" value="5" onClick="calculate();"></td>
  <td><input type="button" id="six" value="6" onClick="calculate();"></td>
  </tr>

  <tr>
  <td><input type="button" id="seven" value="7" onClick="calculate();"></td>
  <td><input type="button" id="eight" value="8" onClick="calculate();"></td>
  <td><input type="button" id="nine" value= "9" onClick="calculate();"></td>
  </tr>

  <tr>
    <td> </td>
    <td><input type="button" id="zero" value="0" onClick="calculate();"></td>
  </tr>

</table>




<script>
function calculate(){
console.log(this.id);
}


</script>

</body>
</html>
4

5 回答 5

5

试试这样:

function calculate(){
   var e = window.event,
       btn = e.target || e.srcElement;
   alert(btn.id);
}

现场演示

解释:

window.event保存有关最后发生的事件的信息。在你的情况下,这是'click'事件。您可以从对象中检索DOM Element被单击的eventtargetorsrcElement属性(取决于浏览器的类型)表示DOM Element

于 2012-07-12T14:39:35.113 回答
2
<script type="text/javascript">
    function calc(e) {
        console.log(e.id);
    }
</script>

<input type="button" id="btn" onclick="calc(this)" />

您需要在自学上付出更多努力:-) 除非付出努力,否则永远不会获得知识。

于 2012-07-12T14:40:34.207 回答
1

您可以使用event.target来获取元素。

<input type="button" id="one" value="1" onclick="calculate(event);">
<script>
function calculate(event) {
  console.log(event.target.id);
}
</script>
于 2012-07-12T14:38:16.840 回答
0

如果您像上面那样硬写它们,则可以将 id 值作为参数传递给函数

onClick="calculate(one)";
onClick="calculate(two)";
onClick="calculate(three)";

ETC...

它的效率并不高,但应该适用于您的情况。然后你的功能可以是这样的:

function calculate(number){
alert(number);
}
于 2012-07-12T14:34:44.267 回答
0

这很简单

onclick=alert(this.id)

或者,在你的情况下:

onclick=calculate()

脚本:

function calculate(){
  alert(this.id)
  //this.id - hold the value of the id of the button just click
}
于 2012-07-12T14:35:50.207 回答