Javascript 循环内部Jquery代码中的变量插值

Javascript 循环内部Jquery代码中的变量插值,javascript,jquery,Javascript,Jquery,我有一些密码, 它有一个for循环 before <div id="container"> </div> after for (i = 1; i < 4; i++){ var showMe = $('<a href=# id="link' + i + '">') .append('click').click(function(){ alert('You clicked num: ' + i) }); $('#container').a

我有一些密码, 它有一个for循环

before
<div id="container">

</div>
after

for (i = 1; i < 4; i++){
  var showMe = $('<a href=# id="link' + i + '">')
    .append('click').click(function(){ alert('You clicked num: ' + i) });
  $('#container').append(
    $('<div id="div'+i+'">').append('this is div number: ' + i).append(showMe)
  ); 
}
之前
之后
对于(i=1;i<4;i++){
变量showMe=$('')
.append('click')。单击(函数(){alert('youclicked num:'+i)});
$(“#容器”)。追加(
$('').append('这是div编号:'+i).append(showMe)
); 
}
因此,链接是用id=link1、link2、link3等生成的,附加的div是相同的,但是onclick代码似乎在事件之后放入了var i,所以单击任何链接时,他们都会说“您单击了第4个”


如何使用单击时调用的函数中单击的链接中的I进行此操作?

将id存储在
数据属性中


您所经历的是基于代码的预期行为

然而,实际上您要做的是传递给函数。这可以通过以下方式实现:

(i=1;i<4;i++)的
{
var showMe=$('').append('单击')
.click({value:i},函数(e){alert('您单击了num:'+e.data.value)});
$('#container').append($('').append('这是div编号:'+i.append(showMe));
}

谢谢!我可以看出,这是事实,我是采取后循环值,即它是4。但是,我不明白为什么有时在循环中使用值,有时在触发事件时使用值。