1

我正在使用此代码存储数据。

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 in loop 也无法达到。

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

1 回答 1

0

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

在您的代码中替换

$.data($bu, "ipucu_secenekleri")

$bu.data("ipucu_secenekleri")

...等等。

于 2012-08-07T07:33:29.463 回答