只需单击按钮即可获取按钮的ID

时间:2012-07-12 14:32:28

标签: javascript

我正在尝试使用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>

5 个答案:

答案 0 :(得分:5)

试试这样:

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

Live demo

说明:

window.event包含有关上次发生事件的信息。在您的情况下,它是'click'事件。您可以从DOM Element对象检索正在单击的eventtargetsrcElement属性(取决于浏览器的类型)表示{{1} }}

答案 1 :(得分:2)

<script type="text/javascript">
    function calc(e) {
        console.log(e.id);
    }
</script>

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

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

答案 2 :(得分:1)

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

<input type="button" id="one" value="1" onclick="calculate(event);">
<script>
function calculate(event) {
  console.log(event.target.id);
}
</script>

答案 3 :(得分:0)

如果您在上面看起来难以写入它们,您可以将id值作为参数传递给函数

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

等...

效率并不高,但应该适合你的情况。然后你的功能可以是:

function calculate(number){
alert(number);
}

答案 4 :(得分: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
}