- 我是 js 新手
- 我正在尝试完成此任务 --->单击任何按钮都应显示该按钮的正确编号。
- 我可以通过点击事件显示按钮
- 但不确定如何显示正确的数字
- 在下面提供我的代码
- 是否也可以使用闭包来解决问题
https://jsfiddle.net/jcLr2kwL/
function myFunction() {
document.getElementById("demo").innerHTML = "Hello World";
}
<button onclick="myFunction()">1</button>
<button onclick="myFunction()">2</button>
<button onclick="myFunction()">3</button>
<button onclick="myFunction()">4</button>
<button onclick="myFunction()">5</button>
<button onclick="myFunction()">6</button>
<p id="demo"></p>
myFunction() 由 onclick(event){...}
调用,它以 event
作为参数。
WebKit 遵循 IE 将 event
传递到处理程序函数的旧行为。
所以在 webkit
和 IE
中,你可以访问 myFunction
中的 event
来获取 event.target
。
function myFunction() {
document.getElementById("demo").innerHTML = event.target.innerHTML;
}
检查下面的片段
function myFunction() {
document.getElementById("demo").innerHTML = event.target.innerHTML;
}
<button onclick="myFunction()">1</button>
<button onclick="myFunction()">2</button>
<button onclick="myFunction()">3</button>
<button onclick="myFunction()">4</button>
<button onclick="myFunction()">5</button>
<button onclick="myFunction()">6</button>
<p id="demo"></p>
但是
Firefox 没有将事件传递给
handler functions
,因此您可以通过编辑
myFunction()
来接收参数
来实现您的目标html
中的 this
(
this
将引用
当前 HTML 元素
)。
function myFunction(el) {
document.getElementById("demo").innerHTML = el.innerHTML;
}
<button onclick="myFunction(this)">1</button>
<button onclick="myFunction(this)">2</button>
<button onclick="myFunction(this)">3</button>
<button onclick="myFunction(this)">4</button>
<button onclick="myFunction(this)">5</button>
<button onclick="myFunction(this)">6</button>
<p id="demo"></p>