Javascript,DefaultEvent

Javascript,DefaultEvent,javascript,Javascript,下面的代码是我的问题代码 var links=content.getElementsByTagName("a"); for(var i=0;i<links.length;++i) { links[i].onclick=function() { document.getElementById("placeholder").setAttribute("src",this.href); return false; }; } var li

下面的代码是我的问题代码

var links=content.getElementsByTagName("a");

for(var i=0;i<links.length;++i)
{
    links[i].onclick=function()
    {
        document.getElementById("placeholder").setAttribute("src",this.href);
        return false;
    };
}
var links=content.getElementsByTagName(“a”);

对于(var i=0;i这将发生,因为当您到达onclick时,
links[i]
将具有不同的(可能未定义)值。JS没有块作用域


如果您愿意,您可以使用
Array.prototype.forEach
,它需要一个函数,因此将保留作用域。

否。我想知道为什么替换它并没有取消默认事件。回答正确!我现在发现了。Thx。您能给我一些关于作用域的资料吗?非常有用。再次感谢~