Использование JQuery removeData () с вложенными данными

Обновить

December 2018

Просмотры

358 раз

3

Я использую JQuery data()функции для хранения данных о серии дивы в формате , аналогичном формату:

{ 
    options: {
        example: {
            option_1: {
                value: "example 1"
            },
            option_2: {
                value: "example 2"
            }
        }
    }
}

Я могу добавить новые ключи и обновлять данные, например,

$("#mydiv").data('options',{'example':{} });    // the object is already created in the live version
$("#mydiv").data('options')['example']['option_3'] = { value: "example 3" };

Но когда я пришел, чтобы использовать removeData (), FireBug говорит мне, что ключ не определен, например,

$("#mydiv").removeData('options')['example']['option_2'];

Любая помощь приветствуется!

tom

1 ответы

4

.removeData(name)удаляет ранее сохраненные данные с данными name, и возвращает JQuery объект. В вашем случае, вы не хотите, чтобы удалить весь optionsобъект, а только определенное свойство его, так что вы должны использовать deleteвместо:

delete $("#mydiv").data('options')['example']['option_2'];