JQuery: loop through nested objects

I would like to loop nested objects. here is my code:

var defaults = {
    toolTips: {
        printVersion: {
            toolTip1: {
                link_s: '#mm_tooltip1_link',
                tooltip_s: '#mm_tooltip1'
            },
            toolTip2: {
                link_s: '#mm_tooltip2_link',
                tooltip_s: '#mm_tooltip2'
            },
            toolTip3: {
                link_s: '#mm_tooltip3_link',
                tooltip_s: '#mm_tooltip3'
            }
        }
    }
};

var settings;
var $archives_dialog;

$.madmagz = function(options) {
    settings = $.extend({}, defaults, options);
    init();
};

function init(){
    initToolTips();
}

function initToolTips() {
    $(settings.toolTips).each ( function (i, tooltip_group) {
        $(tooltip_group).each (function (i, tooltip) {
            // do stuff
        });
    });
}

In each loop, I get the same object. How can I go down in all nested objects?

+3
source share
2 answers

You need a $.each()helper method to iterate over objects.

function initToolTips() {
    $.each(defaults.toolTips, function(i, tooltip_group) {
        $.each(tooltip_group, function(i2, tooltip) {
            alert(i2);
        });
    });
}

Ref .: jQuery.each ()

+5
source
0
source

Source: https://habr.com/ru/post/1764122/


All Articles