通行证;这";元素到JS函数,并带有;javascript:";统一资源定位地址

通行证;这";元素到JS函数,并带有;javascript:";统一资源定位地址,javascript,html,url,Javascript,Html,Url,简言之,我想做什么 <a href="javascript:edit(this, 123)">Edit thing</a> 而不是 <a href="javascript:;" onclick="edit(this, 123)">Edit thing</a> 其中,这个将是,123是一个id。为什么?它干净多了。有什么办法吗?我们如何保持事物的语义 编辑此 然后在某处添加一些javascript document.getElementB

简言之,我想做什么

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

而不是

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


其中,
这个
将是
,123是一个id。为什么?它干净多了。有什么办法吗?

我们如何保持事物的语义

编辑此

然后在某处添加一些javascript

document.getElementById("edit").addEventListener("click", function(ev) {
  // do edit logic
}, false);
传统浏览器中的
addEventListener
会出现问题。请随意使用以修复
addEventListener

我也建议你读一下

然后从这两种技术中选择一种


另外,请不要像那样将id硬编码到函数中。您的
edit
按钮应该通过在DOM中的相对位置知道它正在编辑什么。通过简单的DOM遍历,应该很容易找到正确元素上的语义id。

我们如何保持事物的语义

编辑此

然后在某处添加一些javascript

document.getElementById("edit").addEventListener("click", function(ev) {
  // do edit logic
}, false);
传统浏览器中的
addEventListener
会出现问题。请随意使用以修复
addEventListener

我也建议你读一下

然后从这两种技术中选择一种


另外,请不要像那样将id硬编码到函数中。您的
edit
按钮应该通过在DOM中的相对位置知道它正在编辑什么。通过简单的DOM遍历,应该很容易找到正确元素上的语义id。

将JavaScript完全排除在HTML之外更干净。你想过使用jQuery吗?@David:事实上,真正的代码看起来像
onclick=“edit($(this),123)”
hehe;)将JavaScript完全排除在HTML之外更干净。你想过使用jQuery吗?@David:事实上,真正的代码看起来像
onclick=“edit($(this),123)”
hehe;)如果我们要使用语义,那么按钮也应该使用JavaScript/DOM创建。@MichalGorny,这是不同的。我将创建一个
,并使用JS将
的“type”
更改为
“button”
。处理非JS的方式取决于渐进增强还是使JS不引人注目。渐进增强和不引人注目的JavaScript很好,但这不是我在这个遗留管理界面中首先要担心的事情。你能举一个(非HTML5)如何检索ID的例子吗?因为我找到的最好的方法是解析
id/class=“id-123”
:(@Znarkus取决于ID在其余标记中的含义。以及其余数据。@Raynos:它是应编辑内容的唯一标识符,映射到数据库记录。该链接显示为一个表行数据。如果我们要使用语义,则该按钮也应使用JavaScript/DOM创建。@MichalGorny tha不同。我会创建一个
并将
的“type”
更改为
“button”
亲自使用JS。你处理非JS的方式取决于你是逐步增强还是让你的JS不引人注目。逐步增强和不引人注目的JavaScript很好,但这不是我在这个遗留管理界面中首先担心的事情。你能给我一个(非HTML5)的建议吗如何检索ID的示例?因为我找到的最佳方法是解析
ID/class=“ID-123”
:(@Znarkus取决于ID在标记的其余部分以及数据的其余部分中的含义。@Raynos:它是应编辑内容的唯一标识符,它映射到数据库记录。链接显示为一个数据表行。