js内部函数对外部变量的访问

JavaScript015

js内部函数对外部变量的访问,第1张

i在循环后的最终值是2

即点击p之前i已经变成2了

而items[2]是不存在的

因为只有2个p

改成alert(this.nodeValue)就好了

或者用闭包也可以

for(var

i=0

i<items.length

i++)

{

(function(item){

item.onclick

=

function(){

alert(item.nodeValue)

}

})(item[i])

}

情况有很多种。一下列举几种常见的。

第一种情况你的JS外联文件被覆盖了。通常是变量名和函数名相同被覆盖。

第二种情况:如果你是外联JS文件是在head标签中链接,那么有可能 外联JS文件没有window.onload = function(){}

第三种情况:JS文件路径引用错误

第四种情况:js文件引用正确,但是这个文件的API方法使用错误。

以上是常见的几种情况