84669인 학습
152542인 학습
20005인 학습
5487인 학습
7821인 학습
359900인 학습
3350인 학습
180660인 학습
48569인 학습
18603인 학습
40936인 학습
1549인 학습
1183인 학습
32909인 학습
有个未采纳的「潇潇雨歇」的答案,也有用,只是我现在还不知道let的具体用法。在此表示歉意,我也好想采纳两个。
结果肯定是click button1 alert(3)click button2 alert(3)
怎么修改代码使得click button1 alert(1)click button2 alert(2)
感觉这个问题跟settimeout的闭包经典问题有点像,但是我又想不到什么解决办法。
求指点。
function myclick(i){ return function(){ alert(i) }
第二个参数传myclick(i)
把参数保存在每个button元素的属性里。或者用let
<button id='myButton1' data-info='abc'></button> 点击按钮后,获得button的属性data-info中的属性
jquery一般来说就是操作DOM,渲染的时候拼接在dom上一般是data-*的格式,然后获取出来再用$(this).attr(key)
将var 改为 let 即可
window.onload = function () { for (let i = 1; i < 3; i++) { document.getElementById('myButton' + i) .addEventListener('click', () => { myClick(i) }) } }
第二个参数传myclick(i)
把参数保存在每个button元素的属性里。
或者用let
<button id='myButton1' data-info='abc'></button> 点击按钮后,获得button的属性data-info中的属性
jquery一般来说就是操作DOM,渲染的时候拼接在dom上一般是data-*的格式,然后获取出来再用$(this).attr(key)
将var 改为 let 即可