Javascript 通过函数arg传递一个整数得到字符串';长度

Javascript 通过函数arg传递一个整数得到字符串';长度,javascript,event-listener,Javascript,Event Listener,因此,我的异常情况是:我在.addEventListener中向我的'turn'函数传递一个整数值'g',出于某种原因,当整数通过document.getElementById(“score”).innerHTML=j行从另一端出来时,当我完全期望最初传入的整数时,它会显示sting'length',为什么要这样做 var initials=document.getElementsByClassName("letter") function load(){ for(var g

因此,我的异常情况是:我在
.addEventListener
中向我的'turn'函数传递一个整数值'g',出于某种原因,当整数通过
document.getElementById(“score”).innerHTML=j
行从另一端出来时,当我完全期望最初传入的整数时,它会显示sting'length',为什么要这样做

  var initials=document.getElementsByClassName("letter")

  function load(){

    for(var g in initials)
    {
      initials[g].addEventListener("click", function(){turn(g)})
      initials[g].innerHTML=alpha[Math.floor(Math.random()*alpha.length)]
      document.getElementById("score").innerHTML="thischanged "+g
    }
  }

  function turn(j){
    document.getElementById("score").innerHTML=j
      }

构造
for(缩写为var g)
枚举属性名。至少您需要传入
首字母[g]

数组迭代是一个问题,请参阅副本以解决它。但是,将
g
视为一个数字或字符串,而实际上它是一个DOMNode,还有另一个问题。不确定您对它的期望是什么,但可能是类似于
g.innerHTML
之类的东西。@deceze我想我真正的问题是,如何使用此循环根据单个节点为每个节点分配唯一的事件侦听器itself@mattlao,我知道可能看起来不像,但你的问题确实是重复的。您看到的问题是因为您不正确地使用了for/in。读3。在中的已接受答案中正确使用。