数组的jQuery.data()问题

时间:2011-06-18 19:08:50

标签: jquery

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;的问候,

亚历

1 个答案:

答案 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.level21data.level22内使用从零开始的连续整数,那么简单数组可能是比对象更好的选择:

// Note the "{}" -> "[]" change in here
data = { level21: [ ], level22: [ ] };
// The syntax is the same for the rest