识别对象中的键
Identifying the key in an Object
for (var key in obj[i]) {
dataDump[key] = textField.value;
textField.addEventListener('change', function (e) {
dataDump[key] = e.source.value;
})
}
我将我的对象中的每个键关联到它所映射的TextField。现在,当我改变TextField.....值get存储在last key
,而不是与textField关联的键…
我正在改变TextField
One…其密钥是dataDump['FirstKeyName']
,但它得到的存储在dataDump['LastKeyName']…
这很正常。您正在使用闭包。当你在change上有回调时,它会搜索key。但是你已经完成了对obj的迭代,key等于obj的最后一个"条目"。
要正确关联键,可以这样做:
for (var key in obj[i]) {
dataDump[key] = textField.value;
var callback = function(zeKey){
return function(e){
dataDump[zeKey] = e.source.value;
};
}(key);
textField.addEventListener('change', callback);
}
在for循环中,您显示的TextField永远不会改变!因此,在最后一个键中,您将拥有将键与addEventListenerCode中的值相关联的第一个textField。
textField变量必须随循环中的每个键一起更改!
相关文章:
- 识别没有ID或特定属性的对象
- 识别由不同数量的项组成的json对象
- 通过单击事件识别画布上的对象
- Google Closure Advanced |无法识别对象属性|动态属性
- 拖放无法识别动画CC中拖动对象的子对象
- 无法识别的数据结构-转换为对象
- 是否可以在函数构造函数中识别哪个对象调用它,并在错误的对象调用时中止创建
- 通过放置在对象中来识别对象特性
- 为什么无法识别mssql对象
- JavaScript 如何重新识别事件对象变量
- 无法识别余烬对象
- jQuery 插件 datetimepicker 未被 Date() 对象包装器识别为日期的问题
- 如何识别所选对象的类型
- 语法错误,无法识别的表达式:[对象 HTMLDivElement]输入:复选框[名称=]:选中
- jQuery-通过对象在兄弟对象中的位置(索引)来识别对象
- Javascript对象未被识别为addEventListener的DOM对象
- 如何使用角度模块在视图中识别模型对象
- JavaScript对象无法识别属性
- 无法识别字段-未标记为可忽略错误-JSON-Java对象
- 试图让一个对象识别它的父对象,而不把父对象传递给子对象的实例