这是怎样的'在for循环中工作?

时间:2016-02-13 17:28:41

标签: javascript

我很困惑为什么当我在一个简单的for循环中使用循环元素vs this关键字时,Javascript会显示不同的行为。例如,当我运行以下循环时,它会给出错误:cannot read property innerHTML of undefined

//get a handle on all digits
var digits = document.getElementsByClassName("digit");
for(var i=0; i<digits.length; i++) {
    digits[i].addEventListener("click", function() {
        var number = digits[i].innerHTML;    //error here
        console.log(number);
    })
}

但是当我用digits[i]替换this时,它运行正常。我的问题是,第二种情况有什么不同? (使用this

//get a handle on all digits
var digits = document.getElementsByClassName("digit");
    for(var i=0; i<digits.length; i++) {
        digits[i].addEventListener("click", function() {
            var number = this.innerHTML;    //this works as expected
            console.log(number);
        })
    }

0 个答案:

没有答案