我在一段Javascript代码中有一个列表项的数组。我想为每个人分配一个onclick事件处理程序。每个处理程序将是相同的功能,但具有不同的输入参数。现在,我有:用循环分配函数参数
function contentfill(i) {
box = document.getElementById("text");
box.style.background="rgba(0,0,0,0.8)";
var content = new Array();
contentdivs = document.querySelectorAll("#contentfill>div");
box.innerHTML = contentdivs[i].innerHTML;
}
li[3].onclick = function() {contentfill(0);};
li[4].onclick = function() {contentfill(1);};
li[5].onclick = function() {contentfill(2);};
此作品不够好,但我想实现同样的事情用一个循环,例如:
for(i=3;i<=5;i++) {
j=i-3;
li[i].onclick = function() {contentfill(j);};
}
然而,这是行不通的。由于j似乎在循环结束时被定义为2,所以每次点击时,它似乎只是调用contentfill(2)。