在for循环中将onClick应用于元素数组

时间:2012-09-19 15:43:33

标签: javascript loops onclick

我正在尝试将onClick事件应用于文档中的元素数组,如下所示:

for (var i = 0; i < myElems.length; i++)
     myElems[i].onClick = "someFunction(this)";

代码放在body标签的onLoad事件的init()函数内。我注意到文档加载时,函数不起作用。

我注意到,如果我添加一个alert()告诉我函数是否是问题:

for (var i = 0; i < myElems.length; i++)
     myElems[i].onClick = "alert('It worked!')";

该文档将加载并执行所有元素的警报,而不考虑我是否实际点击了该元素。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

您需要将'onclick'处理程序分配给函数:

for (var i = 0; i < myElems.length; i++)
     myElems[i].onclick = function() { someFunction(this);};

直接分配“警报”电话会触发它(正如您所见)。您要做的是将处理程序分配给将在触发事件时调用的函数。

答案 1 :(得分:2)

属性名称为onclick

onClick即使是有效的HTML,也不存在于JS中,因为它区分大小写。

此外,您必须为David回答(+1)时为其指定一个函数引用或表达式。

Fiddle

相关问题