为什么我收到此错误?
jQuery(document).ready(function($){
$('.stuff').each(function(){
function thing(id, count){
this.id = id;
this.count = count;
}
var myvar = new Array();
myvar.push(new thing('one', '134'));
myvar.push(new thing('two', '225'));
$('a', this).click(function(event){
var i = $(this).attr('class'); // class is 'one', 'two' etc...
// myvar[i] appears undefined here! wtf?
});
});
});
答案 0 :(得分:3)
您正在尝试使用字符串索引(i,attr('class')的结果)访问基于索引的(0,1,2)数组。
最简单的修复方法是为myvar使用一个对象(也就是假的哈希数组),并将键设置为类名。
var myvar = {
one : 134,
two : 225
};
使用myvar,你仍然可以使用myvar [i],我是字符串索引(一,二......)
答案 1 :(得分:1)
“i”的价值是多少? 我怀疑你没有得到myvar = null,但myvar [0] = null因为你没有向数组中添加任何数据。
是否可以在匿名函数中包含该脚本。
答案 2 :(得分:1)
正如我所说,你的价值可能是错的,
它应该从0,1,2 et ....开始打印值或警告并检查它
$('a', this).click(function(event){
var i = $(this).attr('class'); // class is 'one', 'two' etc...
// myvar[i] appears undefined here! wtf?
});