我正在尝试使用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>
答案 0 :(得分:5)
试试这样:
function calculate(){
var e = window.event,
btn = e.target || e.srcElement;
alert(btn.id);
}
说明:
window.event包含有关上次发生事件的信息。在您的情况下,它是'click'
事件。您可以从DOM Element
对象检索正在单击的event
。target
或srcElement
属性(取决于浏览器的类型)表示{{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
}