[英]Can't pass a variable as an argument in a onClick function
我想要一个表,它的单元格充满了MySQL的数据。
该表有许多TD,其中有一个ID。
我想将单元格的ID传递给函数,以便编辑其内容:
document.getElementById(IndexedActionButton).innerHTML = '<input type="Button" name = "EditActionButton" id="EditActionButton" onClick="SaveUpdateToActionList("Cell_ID")" value="Edit Action" />';
function SaveUpdateToActionList(Cell) {
alert(Cell);
document.getElementById(Cell).innerHTML = 'Here';
}
当我有alert(Cell);
显示,我看到这发送文本“ Cell_ID”,而我想在那里查看数据ActionButton386。
任何帮助表示赞赏。
您可以通过将onClick脚本设置为SaveUpdateToActionList(this);
来传递被单击的元素SaveUpdateToActionList(this);
然后,在SaveUpdateToActionList
的正文中, Cell
将引用刚刚单击的按钮。 然后,您可以沿DOM走到它所属的TD。
您可以尝试以下方法:
document.getElementById(IndexedActionButton).innerHTML = '<input type="Button" name = "EditActionButton" id="EditActionButton" onClick="SaveUpdateToActionList()" value="Edit Action" />';
function SaveUpdateToActionList(event) {
alert(event.target.id);
document.getElementById(Cell).innerHTML = 'Here';
}
但是,如果我正确理解了您要做什么,您应该拥有一个事件列表器,它可以捕获来自所有单元格的冒泡事件,而不是在每个单元格上附加onclick。
只需与指定innerHTML
属性分开注册事件侦听器:
Document.getElementById(IndexedActionButton).addEventListener('onclick', SaveUpdateToActionList);
将以事件对象作为第一个参数调用SaveUpdateToActionList
。 您可以通过检查event.target
属性来访问单击了哪个元素。 有关更多信息,请查看MDN-addEventListener文档
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.