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

时间:2011-08-22 12:24:02

标签: javascript html url

简而言之,我想做

<a href="javascript:edit(this, 123)">Edit thing</a>

而不是

<a href="javascript:;" onclick="edit(this, 123)">Edit thing</a>

其中this<a />,123为ID。为什么?它更清洁。有什么办法吗?

1 个答案:

答案 0 :(得分:9)

我们如何保持语义?

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

然后在某处添加一些javascript

document.getElementById("edit").addEventListener("click", function(ev) {
  // do edit logic
}, false);

旧版浏览器中的addEventListener存在问题。您可以使用flow来修复addEventListener

我还建议您阅读

选择其中一种技术。

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