javascript - 获取动态生成的 DOM 元素的 onclick 方法

标签 javascript dom

我使用 onclick 方法动态地将图像添加到我的页面,如下所示:

var image = document.createElement("img");
image.src = "image.png";
image.onclick = function(){
    doSomething();
}

parent.appendChild(image);

这一切都运行良好。但是,我认为想要保存(通过 PHP 脚本)生成的 HTML,使用 onclick 方法。我尝试过使用parent.innerHTML,但是虽然返回图像但onclick 不存在。

我得到:

...<img src="image.png" />...

当我想要的是以下内容时:

...<img src="image.png" onclick="doSomething()" />...

有人可以帮我解决如何实现这一目标吗?谢谢。

最佳答案

这实际上是不可能的。事件函数实例不能通过其所有作用域环境和其他内部或公共(public)属性进行序列化。你只能得到它的代码,做类似的事情

image.setAttribute(
  "onclick",
  image.onclick.toString().replace(/^function\s*([^)]*)\s*\{?|\}$|\n/g, "")
);
return image.outerHTML;

关于javascript - 获取动态生成的 DOM 元素的 onclick 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14237944/

相关文章:

javascript - 提交后如何获取发布日期?

javascript - 删除表格的最后 3 行

javascript - if语句中的异步调用最终执行else语句

javascript - 使用 javascript 控制 HTTP 基本身份验证

javascript - jQuery 数据表清除标题中的单选按钮

javascript - jQuery 1.8 中的 DOM 插入导致 javascript 触发两次

Javascript forEach 方法适用于 NodeList

JavaScript 正则表达式用于在两个组之间显式选择项目?

javascript - nodeValue 和过滤字符?

javascript - "Editing"用户文本正在运行?