Jac*_*cob 3 javascript function
HTML
<body>
<div id='test' onClick="load()">
2
</div>
</body>
Run Code Online (Sandbox Code Playgroud)
使用Javascript
load = function() {
test.innerHTML = "";
for (var i = 0; i < 5; i++) {
var p = document.createElement("p");
p.innerHTML = "Link";
p.onclick = function () {
alert("LINK NR: " + i)
}
document.getElementById('test').appendChild(p);
}
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,为什么函数总是返回最后一个value?
p.onclick只有在元素上触发"click"事件时才会调用该函数,然后i当循环已经完成执行时,该值将为5.
你期望每次循环迭代都会执行函数语句 - 事实并非如此.如果确实执行了,那么对于每次迭代,您都会收到一条警告消息,无论是否单击了元素.
这可以通过保持console.log函数的外部和内部来检查,并且您将发现每次迭代时console.log函数外部的语句将在浏览器的控制台中打印,但console.log函数内部的语句将不会在循环的每次迭代中执行.