Javascript java脚本last iteration为所有迭代设置值 var myElements=document.getElementsByName('bb1'); 对于(var i=0;i
当鼠标移到每个元素上时,将显示一个常量值(最后一次迭代值),而不是显示CurveValue的不同值Javascript java脚本last iteration为所有迭代设置值 var myElements=document.getElementsByName('bb1'); 对于(var i=0;i,javascript,javascript-events,Javascript,Javascript Events,当鼠标移到每个元素上时,将显示一个常量值(最后一次迭代值),而不是显示CurveValue的不同值 我在这里做错了什么?在JavaScript中的块内没有不同的作用域,因此当触发鼠标悬停事件时,它会提醒上次迭代中设置的当前变量值 您可以在回调函数中使用this,以获取触发事件的对象的属性 var myElements = document.getElementsByName('bb1'); for (var i = 0; i < myElements.length; i++) {
我在这里做错了什么?在JavaScript中的
块内没有不同的作用域,因此当触发鼠标悬停事件时,它会提醒上次迭代中设置的当前变量值
您可以在回调函数中使用this
,以获取触发事件的对象的属性
var myElements = document.getElementsByName('bb1');
for (var i = 0; i < myElements.length; i++) {
var curValue = myElements[i].getAttribute('innerId')
myElements[i].addEventListener('mouseover', function () {
alert('Hello i am : ' + curValue);
}, false);
}
var myElements=document.getElementsByName('bb1');
对于(var i=0;i
这里的一般问题是Javascript中的闭包问题。当使用回调函数中未定义的变量(在本例中为CurveValue)时,会发生这种情况
我建议阅读关于JS闭包的答案
var myElements = document.getElementsByName('bb1');
for (var i = 0; i < myElements.length; i++) {
myElements[i].addEventListener('mouseover', function () {
alert('Hello i am : ' + this.getAttribute('innerId'));
}, false);
}