无法读取属性' id'未定义的

时间:2014-09-21 07:26:25

标签: javascript

var task = [document.getElementById('*'),
            document.getElementById('+')];

var i;      
var displayfield  = document.getElementById('displayarea');

displayfield.disabled=true;


for(i=0;i<task.length;i++){

    task[i].onclick = function(){

        console.log('entered?');

        displayfield.innerHTML = task[i].id;

        console.log('clicked');

        console.log(task[i].id.length);
    }
}

我收到此错误&#34;无法读取属性&#39; id&#39;未定义&#34; .. 但是当我在浏览器控制台中输入任务[0]或任务[1]并给出正确的结果时,如&#34; *&#34;和&#34; +&#34; ....

1 个答案:

答案 0 :(得分:0)

这是一个经典的错误。

您已将i定义为全局变量,因此在您的for循环之后,i的值将为= 2.

单击元素时,它将始终调用未定义的任务[2]。

要做你想做的事,你可以在功能中调用它

task[i].onclick = function(){
  console.log(this.id);
}