1
之外我有一个JavaScript事件处理程序是这样的:问题使用JavaScript事件处理程序变量的范围
for (i = 0; i < x; i++){
var table = tableList[i];
var tableID = table.getAttribute('id');
var selector = table.querySelectorAll('input')[0];
selector.on('focusout', function(){
alert(tableID);
}):
}
的TABLEID警报始终处于tableList最后一个表的ID,无论哪个台我的正在使用。
任何想法?
的可能重复[关闭的Javascript内循环 - 简单实用的例子(http://stackoverflow.com/questions/750486/javascript-closure-inside-loops-simple-practical-example) – Ian
你有相同的'ID'应用于多个元素? –
为什么'table.querySelectorAll(“input”)[0]'而不是'table.querySelector(“input”)'?另外,'selector'看起来像是一个用于引用元素的奇怪变量名称。 'table.getAttribute(“id”)''可以是'table.id;'。 –