for循环中的Addeventlistener可以工作,但调试器向我抛出一个未捕获的TypeError:无法读取属性
Addeventlistener in for loop works, but debugger throws me an uncaught TypeError: Cannot read property 'addEventListener' of undefined
所以我的代码可以随心所欲地工作,但大多数(IE除外)调试器都会给我这个错误:
未捕获的TypeError:无法读取未定义的属性"addEventListener"
这是代码:
//Get all elements with the class 'order' and attach eventlisteners
var products=document.getElementsByClassName('order');
for (i=0; i<=products.length; i++){
if (products) {
products[i].addEventListener('keyup', delegate(), false);
products[i].addEventListener('click', delegate(), false);
};
}
function delegate(){
return function(){
ch();
}
}
此代码在窗口中。卸载!我不太担心这个错误,因为我的代码运行得很好。我还是一名初级程序员,我真的很想了解为什么会发生这种情况。此外,我尝试过闭包,它们确实有效,但错误仍然存在。因此,请不要参考任何javascript闭包文章!
我的问题是:我的代码是否有错,或者调试器是否敏感?
提前谢谢。
在上次迭代过程中抛出错误。如果products.length
为8(例如),则有效索引为0到7。您的代码还使用8作为索引。您必须排除最后一个。只需更新for以迭代到i<products.length
而不是i<=products.length
。
//Get all elements with the class 'order' and attach eventlisteners
var products=document.getElementsByClassName('order');
for (i=0; i<products.length; i++){
if (products) {
products[i].addEventListener('keyup', delegate(), false);
products[i].addEventListener('click', delegate(), false);
};
}
function delegate(){
return function(){
ch();
}
}
相关文章:
- TypeError:this.getAttribute不是一个函数-javascript
- 我收到此错误Uncatch TypeError:this.getElements不是一个函数
- TypeError:熟练程度不是一个函数,但它确实是
- jqGrid - TypeError: “#List”.jqGrid 不是一个函数
- TypeError: matrix[y].push 在尝试使用 javascript 创建 2D 数组时不是一个函数
- TypeError: e[h] 不是一个函数
- Infragistics igGrid Uncatch TypeError: undefined 不是一个函数
- Javascript:uncatch TypeError:undefined不是一个函数
- TypeError: require(..) 不是一个函数
- TypeError: undefined 不是一个函数(评估 'document.getsElementsByC
- “TypeError: req.flash 不是一个函数”,使用带有 nodejs、用户名和密码身份验证的护照
- 为什么process.nextTick()在这个“假异步函数”中触发了一个TypeError,而setTimeout()
- Simple Array.prototype正在给出一个TypeError
- 我得到一个TypeError时,试图推迟Jquery,我如何克服这一点
- javascript,又一个TypeError: 'undefined'不是一个函数
- 为什么当我试图从父页面调用iFrame中的函数时,我得到一个TypeError
- 不能弄清楚为什么这是给我一个TypeError
- 试图用$rootScope实现一个指令,得到一个TypeError: Cannot read property '
- link元素上的click()返回一个TypeError..为什么
- 为什么我的代码给了我一个TypeError:x.documentElement是未定义的