无法获取带有 .data(el,'dataname').sublev 的数据对象

Can't get the data object with .data(el,'dataname').sublev

本文关键字:dataname sublev 对象 数据 获取 data el      更新时间:2023-09-26

我用这段代码存储数据。

baslat: function(data) {
            var $bu = $(this).get(0);
            if(!$.data($bu, "ipucu_secenekleri")){
                metodlar.domEkle.apply(this, data);
                var ipucu_secenekleri = $.extend({}, s, data);
                $.data($bu, 'ipucu_secenekleri', ipucu_secenekleri);
            }
            return this;
        },

但是当我尝试获取名为ipucu_secenekleri

            domEkle: function (data) {
               var $bu = $(this).get(0),
               icerik = $.data($bu,"ipucu_secenekleri");
               console.log(icerik) //undefined
            }

那更多...这些也是未定义的:

$.data($bu).ipucu_secenekleri
var datam = $.data($bu);
datam.ipucu_secenekleri;

但这是有趣的部分。当我尝试获取整个数据并控制台时,我可以看到我存储的数据......

$.data($bu); //it returns the data object which contains ipucu_secenekleri.

但正如你所看到的,分配给变量是没有用的。我无法到达子级别,也无法进入循环。

for(var i in datam){console.log(datam[i])} //no effect

$.data() 是一个低级方法。你应该尝试 .data() 方法:

在您的代码中替换

$.data($bu, "ipucu_secenekleri")

$bu.data("ipucu_secenekleri")

。等等。