迭代一个对象数组

时间:2013-10-03 09:15:02

标签: jquery object each

我需要帮助迭代一组对象。 我可以通过变量'道具'成功迭代,但我不能用'道具Objs'。

var props = {
    'dog':'true',
    'cat':'true',
    'mouse':'true'
};

var propsObjs = [
    {name:'dog', state:'true'},
    {name:'cat', state:'true'},
    {name:'mouse', state:'true'}
];

$.each(propsObjs, function (key, value) {
    $('#' + key + '-btn').click(function () {
    $(this).toggleClass('inactive-props');
    $('.' + key + ' ').toggleClass('hide');
});
});

以下是原型的链接: http://jsfiddle.net/readrefuse73/dZysP/10/

2 个答案:

答案 0 :(得分:2)

首先,委托函数$.each迭代有indexvalue个参数。因此,在您的示例中,key是包含迭代索引的整数,value是数组中包含的对象。你需要的是更像这样的东西:

$.each(propsObjs, function (index, value) {
    var key = value.name;
    $('#' + key + '-btn').click(function () {
    $(this).toggleClass('inactive-props');
    $('.' + key).toggleClass('hide');
});

答案 1 :(得分:0)

第二个propsObjsobject的数组。

因此尝试访问对象属性name会帮助您

$.each(propsObjs, function (index, obj) {
    $('#' + obj.name+ '-btn').click(function () {
    $(this).toggleClass('inactive-props');
    $('.' + obj.name+ ' ').toggleClass('hide');
});