перебирая абортный массив

0

Мне нужна помощь, итерация, хотя массив объектов. Я могу успешно перебирать переменные "реквизиты", но я не могу использовать "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/

  • 0
    Зачем вам нужен массив? Если он работает с объектом, просто используйте это.
  • 0
    Я строю более сложный прототип, который я строю поэтапно. Таким образом, следующим этапом сложности является работа с более сложным vraiable / массивом. В конце концов я хотел бы работать с массивом объектов, таких как этот: {id: 0, path: ' placehold.it/25x25 ', теги: ['dog', 'cat']}
Теги:
object
each

2 ответа

0
Лучший ответ

Второй - propsObjs - массив object.

Поэтому попробуйте получить доступ к name свойства объекта, который поможет вам

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

Во-первых, функция делегата $.each итерации имеет параметры index и value. Поэтому в вашем примере key представляет собой целое число, содержащее индекс итерации, а value - это объект, содержащийся в массиве. Что вам нужно, это нечто большее:

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню