用于在循环中返回未索引的javascript

用于在循环中返回未索引的javascript,javascript,html,for-in-loop,Javascript,Html,For In Loop,我正在使用一个forin循环寻找帮助,该循环在末尾返回undefined 我有26个按钮,字母表中每个字母对应一个按钮。我需要扫描按钮,以便在单击某个按钮时获得该按钮的值 我正在使用一个类搜索,它返回所有按钮的一个节点。在执行控制台日志时,将返回26个按钮,这是我所期望的 然后,我设置for in循环,通过按钮向每个按钮添加o点钟,在运行完这些按钮后,尽管会添加一个未定义的。谁能给我解释一下为什么,因为这给了我一个未定义的类型错误 有什么想法吗 var item=document.getEle

我正在使用一个forin循环寻找帮助,该循环在末尾返回undefined

我有26个按钮,字母表中每个字母对应一个按钮。我需要扫描按钮,以便在单击某个按钮时获得该按钮的值

我正在使用一个类搜索,它返回所有按钮的一个节点。在执行控制台日志时,将返回26个按钮,这是我所期望的

然后,我设置for in循环,通过按钮向每个按钮添加o点钟,在运行完这些按钮后,尽管会添加一个未定义的。谁能给我解释一下为什么,因为这给了我一个未定义的类型错误

有什么想法吗

var item=document.getElementsByClassName('button');
控制台日志(项目)//显示26个按钮
for(Object.key(项)中的变量i){
log(项[i])//显示26个按钮和1个未定义的按钮
};
//最终代码如下所示
for(Object.key(项)中的变量i){
项[i]。onclick=function(){
console.log(this.value);
};
}

游戏



不应在集合上使用for-in循环。如果你需要,你需要测试

而是使用一个简单的循环

var item = document.getElementsByClassName('button');
// or better: var item = document.querySelectorAll('.button');
for (var i=0;i<item.length;i++) {
  item[i].onclick = function(){
     console.log(this.value);
  };
}
var item=document.getElementsByClassName('button');
//或者更好:var item=document.querySelectorAll('.button');

for(var i=0;i您不应该在集合上使用for in循环。如果您需要测试

而是使用一个简单的循环

var item = document.getElementsByClassName('button');
// or better: var item = document.querySelectorAll('.button');
for (var i=0;i<item.length;i++) {
  item[i].onclick = function(){
     console.log(this.value);
  };
}
var item=document.getElementsByClassName('button');
//或者更好:var item=document.querySelectorAll('.button');

对于(var i=0;IOK谢谢),它只是一般的坏实践,因为它确实工作了错误吗?在什么情况下,你会用A来枚举一个对象,比如<代码> var Obj= {“键”:“值”,“键”:“值”,“键”:“值”,“键”:“值} /代码>你忘记了{在您for for循环中。@ MpLasgJook OK,谢谢您的帮助。谢谢,我把它改成了一个正常的循环,谢谢,它是不是一般的坏实践,因为它的工作是错误的吗?在什么情况下你会使用A for循环?我将用来枚举一个对象,比如“代码> var Obj= { KEY”:“值”,“键”:“值”,“KEY”:“值”,“键”:“值}。
您忘记了for循环中的{。@mplungjan好的,谢谢您的帮助。我已将其更改为正常的for循环