jQuery: цикл по вложенным объектам - PullRequest
3 голосов
/ 10 сентября 2010

Я хотел бы зациклить вложенные объекты. вот мой код:

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
        });
    });
}

В каждом цикле я получаю один и тот же объект. Как мне спуститься в каждый вложенный объект?

Ответы [ 2 ]

5 голосов
/ 10 сентября 2010

Вам необходим вспомогательный метод $.each() для циклического перемещения по объектам.

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

Ссылка: jQuery.each ()

0 голосов
/ 10 сентября 2010

Используйте .children ()

http://api.jquery.com/children/

...