Javascript JS为click event missed call创建了带有参数的按钮

Javascript JS为click event missed call创建了带有参数的按钮,javascript,jquery,html,function,parameters,Javascript,Jquery,Html,Function,Parameters,我从js在HTML中创建一些按钮,这取决于作为输入接收的值。 很简单,如果输入是5,我画5个按钮,文本从1到5 这些按钮需要调用一个函数,并将每个按钮的计数器作为输入传递(button1将1传递给被调用函数,button2传递2,…) 这就是问题所在:调用所有按钮时,使用相同的输入调用函数(在本例中,值为5表示所有) 为什么??这是我写的: var toAdd = document.createDocumentFragment(); for (var i = 0; i < nErog; i

我从js在HTML中创建一些按钮,这取决于作为输入接收的值。 很简单,如果输入是5,我画5个按钮,文本从1到5

这些按钮需要调用一个函数,并将每个按钮的计数器作为输入传递(button1将1传递给被调用函数,button2传递2,…)

这就是问题所在:调用所有按钮时,使用相同的输入调用函数(在本例中,值为5表示所有)

为什么??这是我写的:

var toAdd = document.createDocumentFragment();
for (var i = 0; i < nErog; i++) {
    var newDiv = document.createElement('div');
    newDiv.id = 'e' + i;
    //newDiv.className = 'ansbox';
    newDiv.style.margin = "20px";
    newDiv.style.fontSize = "350%";
    newDiv.style.fontWeight = "bold";
    toAdd.appendChild(newDiv);
}
document.getElementById('erogs').appendChild(toAdd);

for (var i = 0; i < nErog; i++) {
    $("#e" + i).dxButton({
        text: i + 1,
        onClick: function () {
            RetrieveErogs(i+1);
        },
        height: "120px",
        width: "120px"
    });
}

所有按钮都使用相同的值调用函数,因此我想我错过了指定onClick事件的一些内容,但是什么呢?

尝试用
RetrieveErogs($(this).text())
替换
RetrieveErogs(I+1)

或者,尝试使用闭包:

   (function(x){
      $("#e" + x).dxButton({
        text: (1+x),
        onClick: function () {
            RetrieveErogs(1 + x);
        },
        ...
      });
   })(i);

那么
text
也一样吗?@Arvind文本是正确的
   (function(x){
      $("#e" + x).dxButton({
        text: (1+x),
        onClick: function () {
            RetrieveErogs(1 + x);
        },
        ...
      });
   })(i);