动态创建onclick事件锚元素 - Javascript

3

如何在JavaScript中动态创建超链接的onclick函数?

以下是一段代码片段,使用while循环在同一页内创建多个超链接。我试图仅在a元素上添加onclick事件,如下所示:

a.onclick=myfunction()

然而,当页面加载了这些链接列表时,该函数会自动为每个链接调用。
这是我的代码样式。我想我应该为每个链接使用一个id?
  var a = document.createElement('a');
  var linkText = document.createTextNode(child.innerHTML);
  a.appendChild(linkText);
  a.title = child.innerHTML;
  a.href = "#stockContent" + i;
  a.id = "link_id" + i;

  ...

“i”是迭代器变量。

我肯定会养成给你想要操作的元素加上id的习惯。然后只需要像这样做:"a.addEventListener('onclick', function(event){ do stuff here})"。这样就可以了。它不会立即执行 - 只有通过事件监听器才会执行 "onclick" :)。如果需要,还可以创建自定义事件方法/监听器。 - hipkiss
2个回答

4
a.onclick=myfunction()

myfunction的返回值设置为onclick。您需要的是以下内容:

a.onclick=myfunction

2

您可以以两种方式指定onclick函数:

1)使用命名函数:

function myFunction(){
  alert('hello');
}

a.onclick = myFunction;

2) 使用匿名函数:

a.onclick = function(){ 
  alert('hello'); 
};

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接