for( var i = 0; i <= 5; i++ ){
$('#item').data('level1', { 'level21': {i:'hello'}, 'level22': {i:'world'} } );
}
level21 和 level22 的键是字符串"i"
,而不是var i
中的数字0-5。 level21 应该是"hello"
的六倍, level22 六倍"world"
。
我该如何解决?
谢谢&amp;的问候,
亚历
答案 0 :(得分:3)
你必须以艰难的方式构建你的.data
值,你还需要在循环中构建数据并在之后设置它:
data = { level21: { }, level22: { } };
for( var i = 0; i <= 5; i++ ){
data.level21[i] = 'hello';
data.level22[i] = 'world';
}
$('#item').data('level1', data);
您必须使用[]
形式的对象访问才能获得i
评估。您还需要首先构建数据,以避免每次循环都覆盖'level1'
。
另外,如果你只在data.level21
和data.level22
内使用从零开始的连续整数,那么简单数组可能是比对象更好的选择:
// Note the "{}" -> "[]" change in here
data = { level21: [ ], level22: [ ] };
// The syntax is the same for the rest