将第三列添加到数组中

时间:2013-05-05 13:53:36

标签: javascript jquery

我是jquery / javascript的新手。我有以下代码:

    var Tabs = {
    'tab1'  : 'string1',
    'tab2'  : 'string2',
    'tab3'  : 'string3'
    }

$.each(Tabs,function(i,j){      
var tmp = $('<li><a>'+i+'</a></li>');       
tmp.find('a').data('page',j);
})

我希望我的代码是这样的,但是当我尝试它时,遗憾的是它不起作用:

    var Tabs = {
    'tab1'  : 'string11' : 'string12',
    'tab2'  : 'string21': 'string22',
    'tab3'  : 'string31' : 'string32'
    }

$.each(Tabs,function(i,j,k){    
var tmp = $('<li><a class="'+k+'">'+i+'</a></li>');     
tmp.find('a').data('page',j);
})

换句话说:我想在Tabs数组中添加第三个参数。有人可以向我解释:的作用是什么。你平常的帮助是值得赞赏的。

2 个答案:

答案 0 :(得分:4)

JavaScript对象文字中的一般模式是

var object = {
  key: value, 
  key: value
  // ...
};

因此您的对象分配无效。此外,传递给each()的回调只有两个参数:indexvalue。所以你不能只在那里使用第三个参数。

但是,您可以使用数组(或其他对象)作为这样的值:

var Tabs = {
    'tab1'  : ['string11', 'string12' ],
    'tab2'  : ['string21', 'string22' ],
    'tab3'  : ['string31', 'string32' ]
    }

$.each(Tabs,function(i,j){    
  var tmp = $('<li><a class="'+j[1]+'">'+i+'</a></li>');     
  tmp.find('a').data('page',j[0]);
})

答案 1 :(得分:1)

您可以将key:string转换为key:object对。然后,您可以拥有任意数量的值。它会是这样的:

var Tabs = {
    'tab1': {
        value1: 'string1',
        value2: 'string12'
    },
    'tab2': {
        value1: 'string2',
        value2: 'string22'
    },
    'tab3': {
        value1: 'string3',
        value2: 'string32'
    }
}