使用"javascript:"URL将"this"元素传递给JS函数

Zna*_*kus 1 html javascript url

总之,我想做

<a href="javascript:edit(this, 123)">Edit thing</a>
Run Code Online (Sandbox Code Playgroud)

代替

<a href="javascript:;" onclick="edit(this, 123)">Edit thing</a>
Run Code Online (Sandbox Code Playgroud)

this将是哪里<a />,123是一个id.为什么?它更清洁.有什么办法吗?

Ray*_*nos 9

我们如何保持语义?

<button type="button" id="edit"> Edit this </button>

然后在某处添加一些javascript

document.getElementById("edit").addEventListener("click", function(ev) {
  // do edit logic
}, false);
Run Code Online (Sandbox Code Playgroud)

您将addEventListener在旧版浏览器中遇到问题.随意使用流量来修复addEventListener

我也建议你阅读一下

并选择这两种技术之一.

另外,请不要硬编码id到你的功能.您的edit按钮应该知道DOM中相对位置的编辑内容.通过简单的DOM遍历可以很容易地找到正确元素上的语义ID.