为onclick分配参数值,以动态创建input元素

时间:2014-10-25 17:01:29

标签: javascript json

我有一个JSON对象,我创建了一个包含这些值的表,并添加了一个删除按钮,如下所示

for (var keyValue in thisAdminResult) {
    if (thisAdminResult.hasOwnProperty(keyValue)) {

        var row = document.createElement('tr');
        var firstColumn = document.createElement('td');
        var secondColumn = document.createElement('td');
        var thirdColumn = document.createElement('td');
        var fourthColumn = document.createElement('td');

        var password = document.createElement('input');
        password.type = "password";

        var removeButton = document.createElement('input');
        removeButton.type = "button";

        var updateButton = document.createElement('input');
        updateButton.type = "button";

        firstColumn.appendChild(document.createTextNode(keyValue));

        password.value = thisAdminResult[keyValue];

        secondColumn.appendChild(password);
        removeButton.value = 'remove';

        removeButton.onclick = function () {
            remove(keyValue);
        }

        thirdColumn.appendChild(removeButton);

        updateButton.value = 'update'
        updateButton.onclick = function () {
            //update(keyValue);
        }

        fourthColumn.appendChild(updateButton);

        row.appendChild(firstColumn);
        row.appendChild(secondColumn);
        row.appendChild(thirdColumn);
        row.appendChild(fourthColumn);

        table.appendChild(row);
    }
}

我需要做的是调用具有' keyValue'的特定值的删除功能。变量,当按下每个删除按钮时。

但是上面的代码

当我点击任何删除按钮时,它会调用具有相同参数值的删除函数(' keyValue'的最后一个值)。

有人能告诉我我要做的事情得到纠正。

1 个答案:

答案 0 :(得分:2)

您可以使用IIFE返回具有keyValue当前值的函数,例如

removeButton.onclick = (function (value) {
    return function(){ 
        remove(value); 
    };
})(keyValue);