我有一个城市列表,当我单击链接时,我想运行一些特定的JavaScript。JSfiddle在这里:http : //jsfiddle.net/uWYRW/5/
var cities = [
["new-york", 45, 90, 15]
["london", 20, 30, 15]
];
for (i = 0, length = cities.length; i < length; i++) {
$("#"+cities[i][0]).click(function (e) {
e.preventDefault();
console.log(cities[i][0])
});
}
但是,我收到错误消息“未定义的不是对象”。请有人可以解释问题出在哪里吗?
尝试IIFE(立即调用的函数表达式):
for (i = 0, length = cities.length; i < length; i++) {
(function(i) {
$("#"+cities[i][0]).click(function (e) {
e.preventDefault();
console.log(cities[i][0])
});
})(i);
}
这是因为一旦循环完成,所有侦听器的值i
将为。cities.length
click
此外,您在二维数组中缺少逗号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句