为动态创建的按钮传递按钮值

时间:2015-04-27 21:32:28

标签: javascript html

我有动态创建的元素。但我似乎无法添加一个按下按钮自身值的onclick事件。函数本身没有被调用。

var btn = document.createElement('button');
            btn.innerHTML = "Edit";
            btn.value = i;
            btn.onclick ="EditData(this.value)"; // <---- 

function EditData(value) {
    alert(value);
}

2 个答案:

答案 0 :(得分:2)

您必须将功能分配给onclick,而不是字符串

btn.onclick = function() {
  EditData(this.value);
};

也许你认为你必须分配一个字符串,因为在HTML中我们会写

onclick="...."

但是,DOM API与HTML不同。

Learn more about events and different ways to bind handlers.

答案 1 :(得分:2)

设置功能本身:

var btn = document.createElement('button');
            btn.innerHTML = "Edit";
            btn.value = '2';
            btn.onclick = EditData;

function EditData(event) {
    alert(this.value);
}