我想在单击按钮时从表中删除一行
function submitform(){
var bdelete = document.createElement("BUTTON");
bdelete.setAttribute("id", "del");
bdelete.onclick = delid(this);
var bdname = document.createTextNode("Delete");
bdelete.appendChild(bdname);
td6.appendChild(bdelete);
}
且函数为undefined
function delid(rows) {
var del = rows.srcElement.parentNode.parentNode;
document.getElementById("info").deleteRow(del.rowIndex);
}
此代码也在提交表单功能中
答案 0 :(得分:0)
尝试替换
bdelete.onclick = function(){delid(this)};
与
bdelete.onclick = delid(this);
还将自定义函数放在调用它的代码上方。
function delid(rows) {
var del = rows.srcElement.parentNode.parentNode;
document.getElementById("info").deleteRow(del.rowIndex);
}
var bdelete = document.createElement("BUTTON");
bdelete.setAttribute("id", "del");
bdelete.onclick = delid(this);
var bdname = document.createTextNode("Delete");
bdelete.appendChild(bdname);
td6.appendChild(bdelete);
如果这不能解决问题。请也发布您的html。
答案 1 :(得分:0)
有一些问题。
function submitform() {
//...
bdelete.onclick = delid(this);
//...
}
第一个问题是this
的值。按照书面规定,this
将是功能对象submitform
。如果要传递事件对象,则submitform
首先需要接收事件参数,以便可以传递它。
submit.onclick = submitform;
function submitform (event) {
//...
}
第二个问题是click事件如何绑定到删除按钮。如果delid()
返回了一个函数,这可能是有效的,但是更有可能应该简单地分配该函数,绑定一个新函数或包装一个新函数。
bdelete.onclick = delid; // assignment
bdelete.onclick = delid.bind(null, event); // function binding
bdelete.onclick = function () { delid(event); }; // new anonymous function