0

我需要帮助迭代一组对象。我可以通过变量“props”成功迭代,但不能使用“propsObjs”。

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/

4

2 回答 2

2

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

$.each(propsObjs, function (index, value) {
    var key = value.name;
    $('#' + key + '-btn').click(function () {
    $(this).toggleClass('inactive-props');
    $('.' + key).toggleClass('hide');
});
于 2013-10-03T09:28:11.953 回答
0

第二个propsObjs是一个数组object

所以尝试访问对象属性name会帮助你

$.each(propsObjs, function (index, obj) {
    $('#' + obj.name+ '-btn').click(function () {
    $(this).toggleClass('inactive-props');
    $('.' + obj.name+ ' ').toggleClass('hide');
});
于 2013-10-03T09:28:01.703 回答