0

So as the example below show I want to loop through an array inside an jQuery plugin that I'm trying to build. It's not working so can somebody help me with this.

$.each(defaults.garage, function(i, value){

    $.each(value.cars, function(i2, value2){

        alert(value2.model);

    }); 

});

$.fn[pluginName].defaults = {
      garage:[
            {
                name: '',
                country:'',
                cars:[
                        {
                            model: '',
                            year:''

                        },
                        {
                            model: '',
                            year:''

                        }

                ],
                hook: function(){}
            }       
        ],
        garage:[
            {
                name: '',
                country:'',
                cars:[
                        {
                            model: '',
                            year:''

                        },
                        {
                            model: '',
                            year:''

                        }

                ],
                hook: function(){}
            }       
        ]
};
Jay Blanchard
  • 34,243
  • 16
  • 77
  • 119
user759235
  • 2,147
  • 3
  • 39
  • 77

1 Answers1

1

It looks like your problem is due to the object keys not being unique.

Do JSON keys need to be unique?

You can use this:

$.each(garages, function(i,v){
    $.each(garages[i].cars, function(i2, v2){
        alert(garages[i].cars[i2].model);
    })
})

garages = [
    {
        name: '',
        country: '',
        cars:[
            {
                model: 'BMW',
                year: ''
            }
        ],
        hook: function(){}
    }

    {
        name: '',
        country: '',
        cars:[
            {
                model: 'Honda',
                year: ''
            }
        ],
        hook: function(){}
    }

]

here is a fiddle

Community
  • 1
  • 1
David Stetler
  • 1,465
  • 10
  • 14